home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.0 / PInterfaces / Movies.p < prev    next >
Encoding:
Text File  |  1995-04-18  |  78.9 KB  |  2,350 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Movies.p
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.0
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT Movies;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __MOVIES__}
  30. {$SETC __MOVIES__ := 1}
  31.  
  32. {$I+}
  33. {$SETC MoviesIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __QUICKDRAW__}
  38. {$I Quickdraw.p}
  39. {$ENDC}
  40. {    Types.p                                                        }
  41. {        ConditionalMacros.p                                        }
  42. {    MixedMode.p                                                    }
  43. {    QuickdrawText.p                                                }
  44.  
  45. {$IFC UNDEFINED __ALIASES__}
  46. {$I Aliases.p}
  47. {$ENDC}
  48. {    AppleTalk.p                                                    }
  49. {        OSUtils.p                                                }
  50. {            Memory.p                                            }
  51. {    Files.p                                                        }
  52.  
  53. {$IFC UNDEFINED __EVENTS__}
  54. {$I Events.p}
  55. {$ENDC}
  56.  
  57. {$IFC UNDEFINED __MENUS__}
  58. {$I Menus.p}
  59. {$ENDC}
  60.  
  61. {$IFC UNDEFINED __COMPONENTS__}
  62. {$I Components.p}
  63. {$ENDC}
  64.  
  65. {$IFC UNDEFINED __IMAGECOMPRESSION__}
  66. {$I ImageCompression.p}
  67. {$ENDC}
  68. {    QDOffscreen.p                                                }
  69. {        Errors.p                                                }
  70. {    Windows.p                                                    }
  71. {        Controls.p                                                }
  72. {    StandardFile.p                                                }
  73. {        Dialogs.p                                                }
  74. {            TextEdit.p                                            }
  75.  
  76. {$PUSH}
  77. {$ALIGN MAC68K}
  78. {$LibExport+}
  79.  
  80. CONST
  81.     MovieFileType                = 'MooV';
  82.  
  83.     MediaHandlerType            = 'mhlr';
  84.     DataHandlerType                = 'dhlr';
  85.  
  86.     VideoMediaType                = 'vide';
  87.     SoundMediaType                = 'soun';
  88.     TextMediaType                = 'text';
  89.     BaseMediaType                = 'gnrc';
  90.     MPEGMediaType                = 'MPEG';
  91.     MusicMediaType                = 'musi';
  92.     TimeCodeMediaType            = 'tmcd';
  93.     HandleDataHandlerSubType    = 'hndl';
  94.  
  95.     VisualMediaCharacteristic    = 'eyes';
  96.     AudioMediaCharacteristic    = 'ears';
  97.  
  98.     DoTheRightThing                = 0;
  99.  
  100.  
  101. TYPE
  102.     MovieRecord = RECORD
  103.         data:                    ARRAY [0..0] OF LONGINT;
  104.     END;
  105.  
  106.     Movie = ^MovieRecord;
  107.  
  108.     TrackRecord = RECORD
  109.         data:                    ARRAY [0..0] OF LONGINT;
  110.     END;
  111.  
  112.     Track = ^TrackRecord;
  113.  
  114.     MediaRecord = RECORD
  115.         data:                    ARRAY [0..0] OF LONGINT;
  116.     END;
  117.  
  118.     Media = ^MediaRecord;
  119.  
  120.     UserDataRecord = RECORD
  121.         data:                    ARRAY [0..0] OF LONGINT;
  122.     END;
  123.  
  124.     UserData = ^UserDataRecord;
  125.  
  126.     TrackEditStateRecord = RECORD
  127.         data:                    ARRAY [0..0] OF LONGINT;
  128.     END;
  129.  
  130.     TrackEditState = ^TrackEditStateRecord;
  131.  
  132.     MovieEditStateRecord = RECORD
  133.         data:                    ARRAY [0..0] OF LONGINT;
  134.     END;
  135.  
  136.     MovieEditState = ^MovieEditStateRecord;
  137.  
  138.     SampleDescription = RECORD
  139.         descSize:                LONGINT;
  140.         dataFormat:                LONGINT;
  141.         resvd1:                    LONGINT;
  142.         resvd2:                    INTEGER;
  143.         dataRefIndex:            INTEGER;
  144.     END;
  145.  
  146.     SampleDescriptionPtr = ^SampleDescription;
  147.     SampleDescriptionHandle = ^SampleDescriptionPtr;
  148.  
  149.     SoundDescription = RECORD
  150.         descSize:                LONGINT;                                { total size of SoundDescription including extra data }
  151.         dataFormat:                LONGINT;                                {  }
  152.         resvd1:                    LONGINT;                                { reserved for apple use }
  153.         resvd2:                    INTEGER;
  154.         dataRefIndex:            INTEGER;
  155.         version:                INTEGER;                                { which version is this data }
  156.         revlevel:                INTEGER;                                { what version of that codec did this }
  157.         vendor:                    LONGINT;                                { whose  codec compressed this data }
  158.         numChannels:            INTEGER;                                { number of channels of sound }
  159.         sampleSize:                INTEGER;                                { number of bits per sample }
  160.         compressionID:            INTEGER;                                { sound compression used, 0 if none }
  161.         packetSize:                INTEGER;                                { packet size for compression, 0 if no compression }
  162.         sampleRate:                Fixed;                                    { sample rate sound is captured at }
  163.     END;
  164.  
  165.     SoundDescriptionPtr = ^SoundDescription;
  166.     SoundDescriptionHandle = ^SoundDescriptionPtr;
  167.  
  168.     TextDescription = RECORD
  169.         descSize:                LONGINT;                                { Total size of TextDescription}
  170.         dataFormat:                LONGINT;                                { 'text'}
  171.         resvd1:                    LONGINT;
  172.         resvd2:                    INTEGER;
  173.         dataRefIndex:            INTEGER;
  174.         displayFlags:            LONGINT;                                { see enum below for flag values}
  175.         textJustification:        LONGINT;                                { Can be: teCenter,teFlush -Default,-Right,-Left}
  176.         bgColor:                RGBColor;                                { Background color}
  177.         defaultTextBox:            Rect;                                    { Location to place the text within the track bounds}
  178.         defaultStyle:            ScrpSTElement;                            { Default style (struct defined in TextEdit.h)}
  179.         defaultFontName:        PACKED ARRAY [0..0] OF CHAR;            { Font Name (pascal string - struct extended to fit) }
  180.     END;
  181.  
  182.     TextDescriptionPtr = ^TextDescription;
  183.     TextDescriptionHandle = ^TextDescriptionPtr;
  184.  
  185. {--------------------------
  186.   Music Sample Description
  187. --------------------------}
  188.     MusicDescription = RECORD
  189.         descSize:                LONGINT;
  190.         dataFormat:                LONGINT;                                { 'musi' }
  191.         resvd1:                    LONGINT;
  192.         resvd2:                    INTEGER;
  193.         dataRefIndex:            INTEGER;
  194.         musicFlags:                LONGINT;
  195.         headerData:                ARRAY [0..0] OF LONGINT;                { variable size! }
  196.     END;
  197.  
  198.     MusicDescriptionPtr = ^MusicDescription;
  199.  
  200.     MusicDescriptionHandle = ^MusicDescriptionPtr;
  201.  
  202.  
  203. CONST
  204.     dfDontDisplay                = 1 * (2**(0));                    { Don't display the text}
  205.     dfDontAutoScale                = 1 * (2**(1));                    { Don't scale text as track bounds grows or shrinks}
  206.     dfClipToTextBox                = 1 * (2**(2));                    { Clip update to the textbox}
  207.     dfUseMovieBGColor            = 1 * (2**(3));                    { Set text background to movie's background color}
  208.     dfShrinkTextBoxToFit        = 1 * (2**(4));                    { Compute minimum box to fit the sample}
  209.     dfScrollIn                    = 1 * (2**(5));                    { Scroll text in until last of text is in view }
  210.     dfScrollOut                    = 1 * (2**(6));                    { Scroll text out until last of text is gone (if both set, scroll in then out)}
  211.     dfHorizScroll                = 1 * (2**(7));                    { Scroll text horizontally (otherwise it's vertical)}
  212.     dfReverseScroll                = 1 * (2**(8));                    { vert: scroll down rather than up; horiz: scroll backwards (justfication dependent)}
  213.     dfContinuousScroll            = 1 * (2**(9));                    { new samples cause previous samples to scroll out }
  214.     dfFlowHoriz                    = 1 * (2**(10));                { horiz scroll text flows in textbox rather than extend to right }
  215.     dfDropShadow                = 1 * (2**(12));                { display text with a drop shadow }
  216.     dfAntiAlias                    = 1 * (2**(13));                { attempt to display text anti aliased}
  217.     dfKeyedText                    = 1 * (2**(14));                { key the text over background}
  218.     dfInverseHilite                = 1 * (2**(15));                { Use inverse hiliting rather than using hilite color}
  219.  
  220.     searchTextDontGoToFoundTime    = 1 * (2**(16));
  221.     searchTextDontHiliteFoundText = 1 * (2**(17));
  222.     searchTextOneTrackOnly        = 1 * (2**(18));
  223.     searchTextEnabledTracksOnly    = 1 * (2**(19));
  224.  
  225. { progress messages }
  226.     movieProgressOpen            = 0;
  227.     movieProgressUpdatePercent    = 1;
  228.     movieProgressClose            = 2;
  229.  
  230. { progress operations }
  231.     progressOpFlatten            = 1;
  232.     progressOpInsertTrackSegment = 2;
  233.     progressOpInsertMovieSegment = 3;
  234.     progressOpPaste                = 4;
  235.     progressOpAddMovieSelection    = 5;
  236.     progressOpCopy                = 6;
  237.     progressOpCut                = 7;
  238.     progressOpLoadMovieIntoRam    = 8;
  239.     progressOpLoadTrackIntoRam    = 9;
  240.     progressOpLoadMediaIntoRam    = 10;
  241.     progressOpImportMovie        = 11;
  242.     progressOpExportMovie        = 12;
  243.  
  244.     mediaQualityDraft            = $0000;
  245.     mediaQualityNormal            = $0040;
  246.     mediaQualityBetter            = $0080;
  247.     mediaQualityBest            = $00C0;
  248.  
  249. TYPE
  250.     MovieRgnCoverProcPtr = ProcPtr;  { FUNCTION MovieRgnCover(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT): OSErr; }
  251.     MovieProgressProcPtr = ProcPtr;  { FUNCTION MovieProgress(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT): OSErr; }
  252.     MovieDrawingCompleteProcPtr = ProcPtr;  { FUNCTION MovieDrawingComplete(theMovie: Movie; refCon: LONGINT): OSErr; }
  253.     TrackTransferProcPtr = ProcPtr;  { FUNCTION TrackTransfer(t: Track; refCon: LONGINT): OSErr; }
  254.     GetMovieProcPtr = ProcPtr;  { FUNCTION GetMovie(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr): OSErr; }
  255.     MoviePreviewCallOutProcPtr = ProcPtr;  { FUNCTION MoviePreviewCallOut(refcon: LONGINT): BOOLEAN; }
  256.     MoviesErrorProcPtr = ProcPtr;  { PROCEDURE MoviesError(theErr: OSErr; refcon: LONGINT); }
  257.     TextMediaProcPtr = ProcPtr;  { FUNCTION TextMedia(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT): OSErr; }
  258.     MovieRgnCoverUPP = UniversalProcPtr;
  259.     MovieProgressUPP = UniversalProcPtr;
  260.     MovieDrawingCompleteUPP = UniversalProcPtr;
  261.     TrackTransferUPP = UniversalProcPtr;
  262.     GetMovieUPP = UniversalProcPtr;
  263.     MoviePreviewCallOutUPP = UniversalProcPtr;
  264.     MoviesErrorUPP = UniversalProcPtr;
  265.     TextMediaUPP = UniversalProcPtr;
  266.  
  267.     MediaHandler = ComponentInstance;
  268.     DataHandler = ComponentInstance;
  269.  
  270.     MediaHandlerComponent = Component;
  271.     DataHandlerComponent = Component;
  272.  
  273.     HandlerError = ComponentResult;
  274.  
  275.     TimeValue = LONGINT;
  276.  
  277.     TimeScale = LONGINT;
  278.  
  279.     CompTimeValue = wide;
  280.  
  281.  
  282. CONST
  283.     loopTimeBase                = 1;
  284.     palindromeLoopTimeBase        = 2;
  285.     maintainTimeBaseZero        = 4;
  286.  
  287.     
  288. TYPE
  289.     TimeBaseFlags = LONGINT;
  290.  
  291.     TimeBaseRecord = RECORD
  292.         data:                    ARRAY [0..0] OF LONGINT;
  293.     END;
  294.  
  295.     TimeBase = ^TimeBaseRecord;
  296.  
  297.     CallBackRecord = RECORD
  298.         data:                    ARRAY [0..0] OF LONGINT;
  299.     END;
  300.  
  301.     QTCallBack = ^CallBackRecord;
  302.  
  303.     TimeRecord = RECORD
  304.         value:                    CompTimeValue;                            { units }
  305.         scale:                    TimeScale;                                { units per second }
  306.         base:                    TimeBase;
  307.     END;
  308.  
  309. { CallBack equates }
  310.  
  311. CONST
  312.     triggerTimeFwd                = $0001;                        { when curTime exceeds triggerTime going forward }
  313.     triggerTimeBwd                = $0002;                        { when curTime exceeds triggerTime going backwards }
  314.     triggerTimeEither            = $0003;                        { when curTime exceeds triggerTime going either direction }
  315.     triggerRateLT                = $0004;                        { when rate changes to less than trigger value }
  316.     triggerRateGT                = $0008;                        { when rate changes to greater than trigger value }
  317.     triggerRateEqual            = $0010;                        { when rate changes to equal trigger value }
  318.     triggerRateLTE                = triggerRateLT + triggerRateEqual;
  319.     triggerRateGTE                = triggerRateGT + triggerRateEqual;
  320.     triggerRateNotEqual            = triggerRateGT + triggerRateEqual + triggerRateLT;
  321.     triggerRateChange            = 0;
  322.     triggerAtStart                = $0001;
  323.     triggerAtStop                = $0002;
  324.  
  325.     
  326. TYPE
  327.     QTCallBackFlags = INTEGER;
  328.  
  329.  
  330. CONST
  331.     timeBaseBeforeStartTime        = 1;
  332.     timeBaseAfterStopTime        = 2;
  333.  
  334.     
  335. TYPE
  336.     TimeBaseStatus = LONGINT;
  337.  
  338.  
  339. CONST
  340.     callBackAtTime                = 1;
  341.     callBackAtRate                = 2;
  342.     callBackAtTimeJump            = 3;
  343.     callBackAtExtremes            = 4;
  344.     callBackAtInterrupt            = $8000;
  345.     callBackAtDeferredTask        = $4000;
  346.  
  347.     
  348. TYPE
  349.     QTCallBackType = INTEGER;
  350.  
  351.     QTCallBackProcPtr = ProcPtr;  { PROCEDURE QTCallBack(cb: QTCallBack; refCon: LONGINT); }
  352.     QTCallBackUPP = UniversalProcPtr;
  353.  
  354.  
  355. CONST
  356.     qtcbNeedsRateChanges        = 1;                            { wants to know about rate changes }
  357.     qtcbNeedsTimeChanges        = 2;                            { wants to know about time changes }
  358.     qtcbNeedsStartStopChanges    = 4;                            { wants to know when TimeBase start/stop is changed}
  359.  
  360.  
  361. TYPE
  362.     QTCallBackHeader = RECORD
  363.         callBackFlags:            LONGINT;
  364.         reserved1:                LONGINT;
  365.         qtPrivate:                ARRAY [0..39] OF SInt8;
  366.     END;
  367.  
  368.     QTSyncTaskProcPtr = ProcPtr;  { PROCEDURE QTSyncTask(task: UNIV Ptr); }
  369.     QTSyncTaskUPP = UniversalProcPtr;
  370.  
  371.     QTSyncTaskRecord = RECORD
  372.         qLink:                    Ptr;
  373.         proc:                    QTSyncTaskUPP;
  374.     END;
  375.  
  376.     QTSyncTaskPtr = ^QTSyncTaskRecord;
  377.  
  378.  
  379. CONST
  380.     keepInRam                    = 1 * (2**(0));                    { load and make non-purgable}
  381.     unkeepInRam                    = 1 * (2**(1));                    { mark as purgable}
  382.     flushFromRam                = 1 * (2**(2));                    { empty those handles}
  383.     loadForwardTrackEdits        = 1 * (2**(3));                    {    load track edits into ram for playing forward}
  384.     loadBackwardTrackEdits        = 1 * (2**(4));                    {    load track edits into ram for playing in reverse}
  385.  
  386.     newMovieActive                = 1 * (2**(0));
  387.     newMovieDontResolveDataRefs    = 1 * (2**(1));
  388.     newMovieDontAskUnresolvedDataRefs = 1 * (2**(2));
  389.     newMovieDontAutoAlternates    = 1 * (2**(3));
  390.  
  391. { track usage bits }
  392.     trackUsageInMovie            = 1 * (2**(1));
  393.     trackUsageInPreview            = 1 * (2**(2));
  394.     trackUsageInPoster            = 1 * (2**(3));
  395.  
  396. { Add/GetMediaSample flags }
  397.     mediaSampleNotSync            = 1 * (2**(0));                    { sample is not a sync sample (eg. is frame differenced }
  398.     mediaSampleShadowSync        = 1 * (2**(1));                    { sample is a shadow sync }
  399.  
  400.     pasteInParallel                = 1;
  401.     showUserSettingsDialog        = 2;
  402.     movieToFileOnlyExport        = 4;
  403.  
  404.     nextTimeMediaSample            = 1 * (2**(0));
  405.     nextTimeMediaEdit            = 1 * (2**(1));
  406.     nextTimeTrackEdit            = 1 * (2**(2));
  407.     nextTimeSyncSample            = 1 * (2**(3));
  408.     nextTimeEdgeOK                = 1 * (2**(14));
  409.     nextTimeIgnoreActiveSegment    = 1 * (2**(15));
  410.  
  411.     
  412. TYPE
  413.     nextTimeFlagsEnum = INTEGER;
  414.  
  415.  
  416. CONST
  417.     createMovieFileDeleteCurFile = 1 * (2**(31));
  418.     createMovieFileDontCreateMovie = 1 * (2**(30));
  419.     createMovieFileDontOpenFile    = 1 * (2**(29));
  420.  
  421.     
  422. TYPE
  423.     createMovieFileFlagsEnum = LONGINT;
  424.  
  425.  
  426. CONST
  427.     flattenAddMovieToDataFork    = 1 * (2**(0));
  428.     flattenActiveTracksOnly        = 1 * (2**(2));
  429.     flattenDontInterleaveFlatten = 1 * (2**(3));
  430.  
  431.     
  432. TYPE
  433.     movieFlattenFlagsEnum = LONGINT;
  434.  
  435.  
  436. CONST
  437.     movieInDataForkResID        = -1;                            { magic res ID }
  438.  
  439.     mcTopLeftMovie                = 1 * (2**(0));                    { usually centered }
  440.     mcScaleMovieToFit            = 1 * (2**(1));                    { usually only scales down }
  441.     mcWithBadge                    = 1 * (2**(2));                    { give me a badge }
  442.     mcNotVisible                = 1 * (2**(3));                    { don't show controller }
  443.     mcWithFrame                    = 1 * (2**(4));                    { gimme a frame }
  444.  
  445.     movieScrapDontZeroScrap        = 1 * (2**(0));
  446.     movieScrapOnlyPutMovie        = 1 * (2**(1));
  447.  
  448.     dataRefSelfReference        = 1 * (2**(0));
  449.     dataRefWasNotResolved        = 1 * (2**(1));
  450.  
  451.     
  452. TYPE
  453.     dataRefAttributesFlags = LONGINT;
  454.  
  455.  
  456. CONST
  457.     hintsScrubMode                = 1 * (2**(0));                    { mask == && (if flags == scrub on, flags != scrub off) }
  458.     hintsLoop                    = 1 * (2**(1));
  459.     hintsDontPurge                = 1 * (2**(2));
  460.     hintsUseScreenBuffer        = 1 * (2**(5));
  461.     hintsAllowInterlace            = 1 * (2**(6));
  462.     hintsUseSoundInterp            = 1 * (2**(7));
  463.     hintsHighQuality            = 1 * (2**(8));                    { slooooow }
  464.     hintsPalindrome                = 1 * (2**(9));
  465.     hintsInactive                = 1 * (2**(11));
  466.  
  467.     
  468. TYPE
  469.     playHintsEnum = LONGINT;
  470.  
  471.  
  472. CONST
  473.     mediaHandlerFlagBaseClient    = 1;
  474.  
  475.     
  476. TYPE
  477.     mediaHandlerFlagsEnum = LONGINT;
  478.  
  479.  
  480. CONST
  481.     movieTrackMediaType            = 1 * (2**(0));
  482.     movieTrackCharacteristic    = 1 * (2**(1));
  483.     movieTrackEnabledOnly        = 1 * (2**(2));
  484.  
  485.  
  486. TYPE
  487.     SampleReferenceRecord = RECORD
  488.         dataOffset:                LONGINT;
  489.         dataSize:                LONGINT;
  490.         durationPerSample:        TimeValue;
  491.         numberOfSamples:        LONGINT;
  492.         sampleFlags:            INTEGER;
  493.     END;
  494.  
  495.     SampleReferencePtr = ^SampleReferenceRecord;
  496.  
  497. {************************
  498. * Initialization Routines 
  499. *************************}
  500.  
  501. FUNCTION EnterMovies: OSErr;
  502.     {$IFC NOT GENERATINGCFM}
  503.     INLINE $7001, $AAAA;
  504.     {$ENDC}
  505. PROCEDURE ExitMovies;
  506.     {$IFC NOT GENERATINGCFM}
  507.     INLINE $7002, $AAAA;
  508.     {$ENDC}
  509. {************************
  510. * Error Routines 
  511. *************************}
  512. FUNCTION GetMoviesError: OSErr;
  513.     {$IFC NOT GENERATINGCFM}
  514.     INLINE $7003, $AAAA;
  515.     {$ENDC}
  516. PROCEDURE ClearMoviesStickyError;
  517.     {$IFC NOT GENERATINGCFM}
  518.     INLINE $303C, $DE, $AAAA;
  519.     {$ENDC}
  520. FUNCTION GetMoviesStickyError: OSErr;
  521.     {$IFC NOT GENERATINGCFM}
  522.     INLINE $7004, $AAAA;
  523.     {$ENDC}
  524. PROCEDURE SetMoviesErrorProc(errProc: MoviesErrorUPP; refcon: LONGINT);
  525.     {$IFC NOT GENERATINGCFM}
  526.     INLINE $303C, $EF, $AAAA;
  527.     {$ENDC}
  528. {************************
  529. * Idle Routines 
  530. *************************}
  531. PROCEDURE MoviesTask(theMovie: Movie; maxMilliSecToUse: LONGINT);
  532.     {$IFC NOT GENERATINGCFM}
  533.     INLINE $7005, $AAAA;
  534.     {$ENDC}
  535. FUNCTION PrerollMovie(theMovie: Movie; time: TimeValue; Rate: Fixed): OSErr;
  536.     {$IFC NOT GENERATINGCFM}
  537.     INLINE $7006, $AAAA;
  538.     {$ENDC}
  539. FUNCTION LoadMovieIntoRam(theMovie: Movie; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  540.     {$IFC NOT GENERATINGCFM}
  541.     INLINE $7007, $AAAA;
  542.     {$ENDC}
  543. FUNCTION LoadTrackIntoRam(theTrack: Track; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  544.     {$IFC NOT GENERATINGCFM}
  545.     INLINE $303C, $16E, $AAAA;
  546.     {$ENDC}
  547. FUNCTION LoadMediaIntoRam(theMedia: Media; time: TimeValue; duration: TimeValue; flags: LONGINT): OSErr;
  548.     {$IFC NOT GENERATINGCFM}
  549.     INLINE $7008, $AAAA;
  550.     {$ENDC}
  551. PROCEDURE SetMovieActive(theMovie: Movie; active: BOOLEAN);
  552.     {$IFC NOT GENERATINGCFM}
  553.     INLINE $7009, $AAAA;
  554.     {$ENDC}
  555. FUNCTION GetMovieActive(theMovie: Movie): BOOLEAN;
  556.     {$IFC NOT GENERATINGCFM}
  557.     INLINE $700A, $AAAA;
  558.     {$ENDC}
  559. {************************
  560. * calls for playing movies, previews, posters
  561. *************************}
  562. PROCEDURE StartMovie(theMovie: Movie);
  563.     {$IFC NOT GENERATINGCFM}
  564.     INLINE $700B, $AAAA;
  565.     {$ENDC}
  566. PROCEDURE StopMovie(theMovie: Movie);
  567.     {$IFC NOT GENERATINGCFM}
  568.     INLINE $700C, $AAAA;
  569.     {$ENDC}
  570. PROCEDURE GoToBeginningOfMovie(theMovie: Movie);
  571.     {$IFC NOT GENERATINGCFM}
  572.     INLINE $700D, $AAAA;
  573.     {$ENDC}
  574. PROCEDURE GoToEndOfMovie(theMovie: Movie);
  575.     {$IFC NOT GENERATINGCFM}
  576.     INLINE $700E, $AAAA;
  577.     {$ENDC}
  578. FUNCTION IsMovieDone(theMovie: Movie): BOOLEAN;
  579.     {$IFC NOT GENERATINGCFM}
  580.     INLINE $303C, $DD, $AAAA;
  581.     {$ENDC}
  582. FUNCTION GetMoviePreviewMode(theMovie: Movie): BOOLEAN;
  583.     {$IFC NOT GENERATINGCFM}
  584.     INLINE $700F, $AAAA;
  585.     {$ENDC}
  586. PROCEDURE SetMoviePreviewMode(theMovie: Movie; usePreview: BOOLEAN);
  587.     {$IFC NOT GENERATINGCFM}
  588.     INLINE $7010, $AAAA;
  589.     {$ENDC}
  590. PROCEDURE ShowMoviePoster(theMovie: Movie);
  591.     {$IFC NOT GENERATINGCFM}
  592.     INLINE $7011, $AAAA;
  593.     {$ENDC}
  594. PROCEDURE PlayMoviePreview(theMovie: Movie; callOutProc: MoviePreviewCallOutUPP; refcon: LONGINT);
  595.     {$IFC NOT GENERATINGCFM}
  596.     INLINE $303C, $F2, $AAAA;
  597.     {$ENDC}
  598. {************************
  599. * calls for controlling movies & tracks which are playing
  600. *************************}
  601. FUNCTION GetMovieTimeBase(theMovie: Movie): TimeBase;
  602.     {$IFC NOT GENERATINGCFM}
  603.     INLINE $7012, $AAAA;
  604.     {$ENDC}
  605. PROCEDURE SetMovieMasterTimeBase(theMovie: Movie; tb: TimeBase; {CONST}VAR slaveZero: TimeRecord);
  606.     {$IFC NOT GENERATINGCFM}
  607.     INLINE $303C, $167, $AAAA;
  608.     {$ENDC}
  609. PROCEDURE SetMovieMasterClock(theMovie: Movie; clockMeister: Component; {CONST}VAR slaveZero: TimeRecord);
  610.     {$IFC NOT GENERATINGCFM}
  611.     INLINE $303C, $168, $AAAA;
  612.     {$ENDC}
  613. PROCEDURE GetMovieGWorld(theMovie: Movie; VAR port: CGrafPtr; VAR gdh: GDHandle);
  614.     {$IFC NOT GENERATINGCFM}
  615.     INLINE $7015, $AAAA;
  616.     {$ENDC}
  617. PROCEDURE SetMovieGWorld(theMovie: Movie; port: CGrafPtr; gdh: GDHandle);
  618.     {$IFC NOT GENERATINGCFM}
  619.     INLINE $7016, $AAAA;
  620.     {$ENDC}
  621.  
  622. CONST
  623.     movieDrawingCallWhenChanged    = 0;
  624.     movieDrawingCallAlways        = 1;
  625.  
  626.  
  627. PROCEDURE SetMovieDrawingCompleteProc(theMovie: Movie; flags: LONGINT; proc: MovieDrawingCompleteUPP; refCon: LONGINT);
  628.     {$IFC NOT GENERATINGCFM}
  629.     INLINE $303C, $1DE, $AAAA;
  630.     {$ENDC}
  631. FUNCTION GetNextTrackForCompositing(theMovie: Movie; theTrack: Track): Track;
  632.     {$IFC NOT GENERATINGCFM}
  633.     INLINE $303C, $1FA, $AAAA;
  634.     {$ENDC}
  635. FUNCTION GetPrevTrackForCompositing(theMovie: Movie; theTrack: Track): Track;
  636.     {$IFC NOT GENERATINGCFM}
  637.     INLINE $303C, $1FB, $AAAA;
  638.     {$ENDC}
  639. PROCEDURE SetTrackGWorld(theTrack: Track; port: CGrafPtr; gdh: GDHandle; proc: TrackTransferUPP; refCon: LONGINT);
  640.     {$IFC NOT GENERATINGCFM}
  641.     INLINE $303C, $9D, $AAAA;
  642.     {$ENDC}
  643. FUNCTION GetMoviePict(theMovie: Movie; time: TimeValue): PicHandle;
  644.     {$IFC NOT GENERATINGCFM}
  645.     INLINE $701D, $AAAA;
  646.     {$ENDC}
  647. FUNCTION GetTrackPict(theTrack: Track; time: TimeValue): PicHandle;
  648.     {$IFC NOT GENERATINGCFM}
  649.     INLINE $701E, $AAAA;
  650.     {$ENDC}
  651. FUNCTION GetMoviePosterPict(theMovie: Movie): PicHandle;
  652.     {$IFC NOT GENERATINGCFM}
  653.     INLINE $303C, $F7, $AAAA;
  654.     {$ENDC}
  655. { called between Begin & EndUpdate }
  656. FUNCTION UpdateMovie(theMovie: Movie): OSErr;
  657.     {$IFC NOT GENERATINGCFM}
  658.     INLINE $701F, $AAAA;
  659.     {$ENDC}
  660. {*** spatial movie routines ***}
  661. PROCEDURE GetMovieBox(theMovie: Movie; VAR boxRect: Rect);
  662.     {$IFC NOT GENERATINGCFM}
  663.     INLINE $303C, $F9, $AAAA;
  664.     {$ENDC}
  665. PROCEDURE SetMovieBox(theMovie: Movie; {CONST}VAR boxRect: Rect);
  666.     {$IFC NOT GENERATINGCFM}
  667.     INLINE $303C, $FA, $AAAA;
  668.     {$ENDC}
  669. {* movie display clip }
  670. FUNCTION GetMovieDisplayClipRgn(theMovie: Movie): RgnHandle;
  671.     {$IFC NOT GENERATINGCFM}
  672.     INLINE $303C, $FC, $AAAA;
  673.     {$ENDC}
  674. PROCEDURE SetMovieDisplayClipRgn(theMovie: Movie; theClip: RgnHandle);
  675.     {$IFC NOT GENERATINGCFM}
  676.     INLINE $303C, $FD, $AAAA;
  677.     {$ENDC}
  678. {* movie src clip }
  679. FUNCTION GetMovieClipRgn(theMovie: Movie): RgnHandle;
  680.     {$IFC NOT GENERATINGCFM}
  681.     INLINE $303C, $100, $AAAA;
  682.     {$ENDC}
  683. PROCEDURE SetMovieClipRgn(theMovie: Movie; theClip: RgnHandle);
  684.     {$IFC NOT GENERATINGCFM}
  685.     INLINE $303C, $101, $AAAA;
  686.     {$ENDC}
  687. {* track src clip }
  688. FUNCTION GetTrackClipRgn(theTrack: Track): RgnHandle;
  689.     {$IFC NOT GENERATINGCFM}
  690.     INLINE $303C, $102, $AAAA;
  691.     {$ENDC}
  692. PROCEDURE SetTrackClipRgn(theTrack: Track; theClip: RgnHandle);
  693.     {$IFC NOT GENERATINGCFM}
  694.     INLINE $303C, $103, $AAAA;
  695.     {$ENDC}
  696. {* bounds in display space (not clipped by display clip) }
  697. FUNCTION GetMovieDisplayBoundsRgn(theMovie: Movie): RgnHandle;
  698.     {$IFC NOT GENERATINGCFM}
  699.     INLINE $303C, $FB, $AAAA;
  700.     {$ENDC}
  701. FUNCTION GetTrackDisplayBoundsRgn(theTrack: Track): RgnHandle;
  702.     {$IFC NOT GENERATINGCFM}
  703.     INLINE $303C, $112, $AAAA;
  704.     {$ENDC}
  705. {* bounds in movie space }
  706. FUNCTION GetMovieBoundsRgn(theMovie: Movie): RgnHandle;
  707.     {$IFC NOT GENERATINGCFM}
  708.     INLINE $303C, $FE, $AAAA;
  709.     {$ENDC}
  710. FUNCTION GetTrackMovieBoundsRgn(theTrack: Track): RgnHandle;
  711.     {$IFC NOT GENERATINGCFM}
  712.     INLINE $303C, $FF, $AAAA;
  713.     {$ENDC}
  714. {* bounds in track space }
  715. FUNCTION GetTrackBoundsRgn(theTrack: Track): RgnHandle;
  716.     {$IFC NOT GENERATINGCFM}
  717.     INLINE $303C, $111, $AAAA;
  718.     {$ENDC}
  719. {* mattes - always in track space }
  720. FUNCTION GetTrackMatte(theTrack: Track): PixMapHandle;
  721.     {$IFC NOT GENERATINGCFM}
  722.     INLINE $303C, $115, $AAAA;
  723.     {$ENDC}
  724. PROCEDURE SetTrackMatte(theTrack: Track; theMatte: PixMapHandle);
  725.     {$IFC NOT GENERATINGCFM}
  726.     INLINE $303C, $116, $AAAA;
  727.     {$ENDC}
  728. PROCEDURE DisposeMatte(theMatte: PixMapHandle);
  729.     {$IFC NOT GENERATINGCFM}
  730.     INLINE $303C, $14A, $AAAA;
  731.     {$ENDC}
  732. {************************
  733. * calls for getting/saving movies
  734. *************************}
  735. FUNCTION NewMovie(flags: LONGINT): Movie;
  736.     {$IFC NOT GENERATINGCFM}
  737.     INLINE $303C, $187, $AAAA;
  738.     {$ENDC}
  739. FUNCTION PutMovieIntoHandle(theMovie: Movie; publicMovie: Handle): OSErr;
  740.     {$IFC NOT GENERATINGCFM}
  741.     INLINE $7022, $AAAA;
  742.     {$ENDC}
  743. FUNCTION PutMovieIntoDataFork(theMovie: Movie; fRefNum: INTEGER; offset: LONGINT; maxSize: LONGINT): OSErr;
  744.     {$IFC NOT GENERATINGCFM}
  745.     INLINE $303C, $1B4, $AAAA;
  746.     {$ENDC}
  747. PROCEDURE DisposeMovie(theMovie: Movie);
  748.     {$IFC NOT GENERATINGCFM}
  749.     INLINE $7023, $AAAA;
  750.     {$ENDC}
  751. {************************
  752. * Movie State Routines
  753. *************************}
  754. FUNCTION GetMovieCreationTime(theMovie: Movie): LONGINT;
  755.     {$IFC NOT GENERATINGCFM}
  756.     INLINE $7026, $AAAA;
  757.     {$ENDC}
  758. FUNCTION GetMovieModificationTime(theMovie: Movie): LONGINT;
  759.     {$IFC NOT GENERATINGCFM}
  760.     INLINE $7027, $AAAA;
  761.     {$ENDC}
  762. FUNCTION GetMovieTimeScale(theMovie: Movie): TimeScale;
  763.     {$IFC NOT GENERATINGCFM}
  764.     INLINE $7029, $AAAA;
  765.     {$ENDC}
  766. PROCEDURE SetMovieTimeScale(theMovie: Movie; timeScale: TimeScale);
  767.     {$IFC NOT GENERATINGCFM}
  768.     INLINE $702A, $AAAA;
  769.     {$ENDC}
  770. FUNCTION GetMovieDuration(theMovie: Movie): TimeValue;
  771.     {$IFC NOT GENERATINGCFM}
  772.     INLINE $702B, $AAAA;
  773.     {$ENDC}
  774. FUNCTION GetMovieRate(theMovie: Movie): Fixed;
  775.     {$IFC NOT GENERATINGCFM}
  776.     INLINE $702C, $AAAA;
  777.     {$ENDC}
  778. PROCEDURE SetMovieRate(theMovie: Movie; rate: Fixed);
  779.     {$IFC NOT GENERATINGCFM}
  780.     INLINE $702D, $AAAA;
  781.     {$ENDC}
  782. FUNCTION GetMoviePreferredRate(theMovie: Movie): Fixed;
  783.     {$IFC NOT GENERATINGCFM}
  784.     INLINE $303C, $F3, $AAAA;
  785.     {$ENDC}
  786. PROCEDURE SetMoviePreferredRate(theMovie: Movie; rate: Fixed);
  787.     {$IFC NOT GENERATINGCFM}
  788.     INLINE $303C, $F4, $AAAA;
  789.     {$ENDC}
  790. FUNCTION GetMoviePreferredVolume(theMovie: Movie): INTEGER;
  791.     {$IFC NOT GENERATINGCFM}
  792.     INLINE $303C, $F5, $AAAA;
  793.     {$ENDC}
  794. PROCEDURE SetMoviePreferredVolume(theMovie: Movie; volume: INTEGER);
  795.     {$IFC NOT GENERATINGCFM}
  796.     INLINE $303C, $F6, $AAAA;
  797.     {$ENDC}
  798. FUNCTION GetMovieVolume(theMovie: Movie): INTEGER;
  799.     {$IFC NOT GENERATINGCFM}
  800.     INLINE $702E, $AAAA;
  801.     {$ENDC}
  802. PROCEDURE SetMovieVolume(theMovie: Movie; volume: INTEGER);
  803.     {$IFC NOT GENERATINGCFM}
  804.     INLINE $702F, $AAAA;
  805.     {$ENDC}
  806. PROCEDURE GetMovieMatrix(theMovie: Movie; VAR matrix: MatrixRecord);
  807.     {$IFC NOT GENERATINGCFM}
  808.     INLINE $7031, $AAAA;
  809.     {$ENDC}
  810. PROCEDURE SetMovieMatrix(theMovie: Movie; {CONST}VAR matrix: MatrixRecord);
  811.     {$IFC NOT GENERATINGCFM}
  812.     INLINE $7032, $AAAA;
  813.     {$ENDC}
  814. PROCEDURE GetMoviePreviewTime(theMovie: Movie; VAR previewTime: TimeValue; VAR previewDuration: TimeValue);
  815.     {$IFC NOT GENERATINGCFM}
  816.     INLINE $7033, $AAAA;
  817.     {$ENDC}
  818. PROCEDURE SetMoviePreviewTime(theMovie: Movie; previewTime: TimeValue; previewDuration: TimeValue);
  819.     {$IFC NOT GENERATINGCFM}
  820.     INLINE $7034, $AAAA;
  821.     {$ENDC}
  822. FUNCTION GetMoviePosterTime(theMovie: Movie): TimeValue;
  823.     {$IFC NOT GENERATINGCFM}
  824.     INLINE $7035, $AAAA;
  825.     {$ENDC}
  826. PROCEDURE SetMoviePosterTime(theMovie: Movie; posterTime: TimeValue);
  827.     {$IFC NOT GENERATINGCFM}
  828.     INLINE $7036, $AAAA;
  829.     {$ENDC}
  830. PROCEDURE GetMovieSelection(theMovie: Movie; VAR selectionTime: TimeValue; VAR selectionDuration: TimeValue);
  831.     {$IFC NOT GENERATINGCFM}
  832.     INLINE $7037, $AAAA;
  833.     {$ENDC}
  834. PROCEDURE SetMovieSelection(theMovie: Movie; selectionTime: TimeValue; selectionDuration: TimeValue);
  835.     {$IFC NOT GENERATINGCFM}
  836.     INLINE $7038, $AAAA;
  837.     {$ENDC}
  838. PROCEDURE SetMovieActiveSegment(theMovie: Movie; startTime: TimeValue; duration: TimeValue);
  839.     {$IFC NOT GENERATINGCFM}
  840.     INLINE $303C, $15C, $AAAA;
  841.     {$ENDC}
  842. PROCEDURE GetMovieActiveSegment(theMovie: Movie; VAR startTime: TimeValue; VAR duration: TimeValue);
  843.     {$IFC NOT GENERATINGCFM}
  844.     INLINE $303C, $15D, $AAAA;
  845.     {$ENDC}
  846. FUNCTION GetMovieTime(theMovie: Movie; VAR currentTime: TimeRecord): TimeValue;
  847.     {$IFC NOT GENERATINGCFM}
  848.     INLINE $7039, $AAAA;
  849.     {$ENDC}
  850. PROCEDURE SetMovieTime(theMovie: Movie; {CONST}VAR newtime: TimeRecord);
  851.     {$IFC NOT GENERATINGCFM}
  852.     INLINE $703C, $AAAA;
  853.     {$ENDC}
  854. PROCEDURE SetMovieTimeValue(theMovie: Movie; newtime: TimeValue);
  855.     {$IFC NOT GENERATINGCFM}
  856.     INLINE $703D, $AAAA;
  857.     {$ENDC}
  858. FUNCTION GetMovieUserData(theMovie: Movie): UserData;
  859.     {$IFC NOT GENERATINGCFM}
  860.     INLINE $703E, $AAAA;
  861.     {$ENDC}
  862. {************************
  863. * Track/Media finding routines
  864. *************************}
  865. FUNCTION GetMovieTrackCount(theMovie: Movie): LONGINT;
  866.     {$IFC NOT GENERATINGCFM}
  867.     INLINE $703F, $AAAA;
  868.     {$ENDC}
  869. FUNCTION GetMovieTrack(theMovie: Movie; trackID: LONGINT): Track;
  870.     {$IFC NOT GENERATINGCFM}
  871.     INLINE $7040, $AAAA;
  872.     {$ENDC}
  873. FUNCTION GetMovieIndTrack(theMovie: Movie; index: LONGINT): Track;
  874.     {$IFC NOT GENERATINGCFM}
  875.     INLINE $303C, $117, $AAAA;
  876.     {$ENDC}
  877. FUNCTION GetMovieIndTrackType(theMovie: Movie; index: LONGINT; trackType: OSType; flags: LONGINT): Track;
  878.     {$IFC NOT GENERATINGCFM}
  879.     INLINE $303C, $208, $AAAA;
  880.     {$ENDC}
  881. FUNCTION GetTrackID(theTrack: Track): LONGINT;
  882.     {$IFC NOT GENERATINGCFM}
  883.     INLINE $303C, $127, $AAAA;
  884.     {$ENDC}
  885. FUNCTION GetTrackMovie(theTrack: Track): Movie;
  886.     {$IFC NOT GENERATINGCFM}
  887.     INLINE $303C, $D0, $AAAA;
  888.     {$ENDC}
  889. {************************
  890. * Track creation routines
  891. *************************}
  892. FUNCTION NewMovieTrack(theMovie: Movie; width: Fixed; height: Fixed; trackVolume: INTEGER): Track;
  893.     {$IFC NOT GENERATINGCFM}
  894.     INLINE $303C, $188, $AAAA;
  895.     {$ENDC}
  896. PROCEDURE DisposeMovieTrack(theTrack: Track);
  897.     {$IFC NOT GENERATINGCFM}
  898.     INLINE $7042, $AAAA;
  899.     {$ENDC}
  900. {************************
  901. * Track State routines
  902. *************************}
  903. FUNCTION GetTrackCreationTime(theTrack: Track): LONGINT;
  904.     {$IFC NOT GENERATINGCFM}
  905.     INLINE $7043, $AAAA;
  906.     {$ENDC}
  907. FUNCTION GetTrackModificationTime(theTrack: Track): LONGINT;
  908.     {$IFC NOT GENERATINGCFM}
  909.     INLINE $7044, $AAAA;
  910.     {$ENDC}
  911. FUNCTION GetTrackEnabled(theTrack: Track): BOOLEAN;
  912.     {$IFC NOT GENERATINGCFM}
  913.     INLINE $7045, $AAAA;
  914.     {$ENDC}
  915. PROCEDURE SetTrackEnabled(theTrack: Track; isEnabled: BOOLEAN);
  916.     {$IFC NOT GENERATINGCFM}
  917.     INLINE $7046, $AAAA;
  918.     {$ENDC}
  919. FUNCTION GetTrackUsage(theTrack: Track): LONGINT;
  920.     {$IFC NOT GENERATINGCFM}
  921.     INLINE $7047, $AAAA;
  922.     {$ENDC}
  923. PROCEDURE SetTrackUsage(theTrack: Track; usage: LONGINT);
  924.     {$IFC NOT GENERATINGCFM}
  925.     INLINE $7048, $AAAA;
  926.     {$ENDC}
  927. FUNCTION GetTrackDuration(theTrack: Track): TimeValue;
  928.     {$IFC NOT GENERATINGCFM}
  929.     INLINE $704B, $AAAA;
  930.     {$ENDC}
  931. FUNCTION GetTrackOffset(theTrack: Track): TimeValue;
  932.     {$IFC NOT GENERATINGCFM}
  933.     INLINE $704C, $AAAA;
  934.     {$ENDC}
  935. PROCEDURE SetTrackOffset(theTrack: Track; movieOffsetTime: TimeValue);
  936.     {$IFC NOT GENERATINGCFM}
  937.     INLINE $704D, $AAAA;
  938.     {$ENDC}
  939. FUNCTION GetTrackLayer(theTrack: Track): INTEGER;
  940.     {$IFC NOT GENERATINGCFM}
  941.     INLINE $7050, $AAAA;
  942.     {$ENDC}
  943. PROCEDURE SetTrackLayer(theTrack: Track; layer: INTEGER);
  944.     {$IFC NOT GENERATINGCFM}
  945.     INLINE $7051, $AAAA;
  946.     {$ENDC}
  947. FUNCTION GetTrackAlternate(theTrack: Track): Track;
  948.     {$IFC NOT GENERATINGCFM}
  949.     INLINE $7052, $AAAA;
  950.     {$ENDC}
  951. PROCEDURE SetTrackAlternate(theTrack: Track; alternateT: Track);
  952.     {$IFC NOT GENERATINGCFM}
  953.     INLINE $7053, $AAAA;
  954.     {$ENDC}
  955. PROCEDURE SetAutoTrackAlternatesEnabled(theMovie: Movie; enable: BOOLEAN);
  956.     {$IFC NOT GENERATINGCFM}
  957.     INLINE $303C, $15E, $AAAA;
  958.     {$ENDC}
  959. PROCEDURE SelectMovieAlternates(theMovie: Movie);
  960.     {$IFC NOT GENERATINGCFM}
  961.     INLINE $303C, $15F, $AAAA;
  962.     {$ENDC}
  963. FUNCTION GetTrackVolume(theTrack: Track): INTEGER;
  964.     {$IFC NOT GENERATINGCFM}
  965.     INLINE $7054, $AAAA;
  966.     {$ENDC}
  967. PROCEDURE SetTrackVolume(theTrack: Track; volume: INTEGER);
  968.     {$IFC NOT GENERATINGCFM}
  969.     INLINE $7055, $AAAA;
  970.     {$ENDC}
  971. PROCEDURE GetTrackMatrix(theTrack: Track; VAR matrix: MatrixRecord);
  972.     {$IFC NOT GENERATINGCFM}
  973.     INLINE $7056, $AAAA;
  974.     {$ENDC}
  975. PROCEDURE SetTrackMatrix(theTrack: Track; {CONST}VAR matrix: MatrixRecord);
  976.     {$IFC NOT GENERATINGCFM}
  977.     INLINE $7057, $AAAA;
  978.     {$ENDC}
  979. PROCEDURE GetTrackDimensions(theTrack: Track; VAR width: Fixed; VAR height: Fixed);
  980.     {$IFC NOT GENERATINGCFM}
  981.     INLINE $705D, $AAAA;
  982.     {$ENDC}
  983. PROCEDURE SetTrackDimensions(theTrack: Track; width: Fixed; height: Fixed);
  984.     {$IFC NOT GENERATINGCFM}
  985.     INLINE $705E, $AAAA;
  986.     {$ENDC}
  987. FUNCTION GetTrackUserData(theTrack: Track): UserData;
  988.     {$IFC NOT GENERATINGCFM}
  989.     INLINE $705F, $AAAA;
  990.     {$ENDC}
  991. {************************
  992. * get Media routines
  993. *************************}
  994. FUNCTION NewTrackMedia(theTrack: Track; mediaType: OSType; timeScale: TimeScale; dataRef: Handle; dataRefType: OSType): Media;
  995.     {$IFC NOT GENERATINGCFM}
  996.     INLINE $303C, $18E, $AAAA;
  997.     {$ENDC}
  998. PROCEDURE DisposeTrackMedia(theMedia: Media);
  999.     {$IFC NOT GENERATINGCFM}
  1000.     INLINE $7061, $AAAA;
  1001.     {$ENDC}
  1002. FUNCTION GetTrackMedia(theTrack: Track): Media;
  1003.     {$IFC NOT GENERATINGCFM}
  1004.     INLINE $7062, $AAAA;
  1005.     {$ENDC}
  1006. FUNCTION GetMediaTrack(theMedia: Media): Track;
  1007.     {$IFC NOT GENERATINGCFM}
  1008.     INLINE $303C, $C5, $AAAA;
  1009.     {$ENDC}
  1010. {************************
  1011. * Media State routines
  1012. *************************}
  1013. FUNCTION GetMediaCreationTime(theMedia: Media): LONGINT;
  1014.     {$IFC NOT GENERATINGCFM}
  1015.     INLINE $7066, $AAAA;
  1016.     {$ENDC}
  1017. FUNCTION GetMediaModificationTime(theMedia: Media): LONGINT;
  1018.     {$IFC NOT GENERATINGCFM}
  1019.     INLINE $7067, $AAAA;
  1020.     {$ENDC}
  1021. FUNCTION GetMediaTimeScale(theMedia: Media): TimeScale;
  1022.     {$IFC NOT GENERATINGCFM}
  1023.     INLINE $7068, $AAAA;
  1024.     {$ENDC}
  1025. PROCEDURE SetMediaTimeScale(theMedia: Media; timeScale: TimeScale);
  1026.     {$IFC NOT GENERATINGCFM}
  1027.     INLINE $7069, $AAAA;
  1028.     {$ENDC}
  1029. FUNCTION GetMediaDuration(theMedia: Media): TimeValue;
  1030.     {$IFC NOT GENERATINGCFM}
  1031.     INLINE $706A, $AAAA;
  1032.     {$ENDC}
  1033. FUNCTION GetMediaLanguage(theMedia: Media): INTEGER;
  1034.     {$IFC NOT GENERATINGCFM}
  1035.     INLINE $706B, $AAAA;
  1036.     {$ENDC}
  1037. PROCEDURE SetMediaLanguage(theMedia: Media; language: INTEGER);
  1038.     {$IFC NOT GENERATINGCFM}
  1039.     INLINE $706C, $AAAA;
  1040.     {$ENDC}
  1041. FUNCTION GetMediaQuality(theMedia: Media): INTEGER;
  1042.     {$IFC NOT GENERATINGCFM}
  1043.     INLINE $706D, $AAAA;
  1044.     {$ENDC}
  1045. PROCEDURE SetMediaQuality(theMedia: Media; quality: INTEGER);
  1046.     {$IFC NOT GENERATINGCFM}
  1047.     INLINE $706E, $AAAA;
  1048.     {$ENDC}
  1049. PROCEDURE GetMediaHandlerDescription(theMedia: Media; VAR mediaType: OSType; VAR creatorName: Str255; VAR creatorManufacturer: OSType);
  1050.     {$IFC NOT GENERATINGCFM}
  1051.     INLINE $706F, $AAAA;
  1052.     {$ENDC}
  1053. FUNCTION GetMediaUserData(theMedia: Media): UserData;
  1054.     {$IFC NOT GENERATINGCFM}
  1055.     INLINE $7070, $AAAA;
  1056.     {$ENDC}
  1057. {************************
  1058. * Media Handler routines
  1059. *************************}
  1060. FUNCTION GetMediaHandler(theMedia: Media): MediaHandler;
  1061.     {$IFC NOT GENERATINGCFM}
  1062.     INLINE $7071, $AAAA;
  1063.     {$ENDC}
  1064. FUNCTION SetMediaHandler(theMedia: Media; mH: MediaHandlerComponent): OSErr;
  1065.     {$IFC NOT GENERATINGCFM}
  1066.     INLINE $303C, $190, $AAAA;
  1067.     {$ENDC}
  1068. {************************
  1069. * Media's Data routines
  1070. *************************}
  1071. FUNCTION BeginMediaEdits(theMedia: Media): OSErr;
  1072.     {$IFC NOT GENERATINGCFM}
  1073.     INLINE $7072, $AAAA;
  1074.     {$ENDC}
  1075. FUNCTION EndMediaEdits(theMedia: Media): OSErr;
  1076.     {$IFC NOT GENERATINGCFM}
  1077.     INLINE $7073, $AAAA;
  1078.     {$ENDC}
  1079. FUNCTION SetMediaDefaultDataRefIndex(theMedia: Media; index: INTEGER): OSErr;
  1080.     {$IFC NOT GENERATINGCFM}
  1081.     INLINE $303C, $1E0, $AAAA;
  1082.     {$ENDC}
  1083. PROCEDURE GetMediaDataHandlerDescription(theMedia: Media; index: INTEGER; VAR dhType: OSType; VAR creatorName: Str255; VAR creatorManufacturer: OSType);
  1084.     {$IFC NOT GENERATINGCFM}
  1085.     INLINE $303C, $19E, $AAAA;
  1086.     {$ENDC}
  1087. FUNCTION GetMediaDataHandler(theMedia: Media; index: INTEGER): DataHandler;
  1088.     {$IFC NOT GENERATINGCFM}
  1089.     INLINE $303C, $19F, $AAAA;
  1090.     {$ENDC}
  1091. FUNCTION SetMediaDataHandler(theMedia: Media; index: INTEGER; dataHandler: DataHandlerComponent): OSErr;
  1092.     {$IFC NOT GENERATINGCFM}
  1093.     INLINE $303C, $1A0, $AAAA;
  1094.     {$ENDC}
  1095. FUNCTION GetDataHandler(dataRef: Handle; dataHandlerSubType: OSType; flags: LONGINT): Component;
  1096.     {$IFC NOT GENERATINGCFM}
  1097.     INLINE $303C, $1ED, $AAAA;
  1098.     {$ENDC}
  1099. {************************
  1100. * Media Sample Table Routines
  1101. *************************}
  1102. FUNCTION GetMediaSampleDescriptionCount(theMedia: Media): LONGINT;
  1103.     {$IFC NOT GENERATINGCFM}
  1104.     INLINE $7077, $AAAA;
  1105.     {$ENDC}
  1106. PROCEDURE GetMediaSampleDescription(theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle);
  1107.     {$IFC NOT GENERATINGCFM}
  1108.     INLINE $7078, $AAAA;
  1109.     {$ENDC}
  1110. FUNCTION SetMediaSampleDescription(theMedia: Media; index: LONGINT; descH: SampleDescriptionHandle): OSErr;
  1111.     {$IFC NOT GENERATINGCFM}
  1112.     INLINE $303C, $1D0, $AAAA;
  1113.     {$ENDC}
  1114. FUNCTION GetMediaSampleCount(theMedia: Media): LONGINT;
  1115.     {$IFC NOT GENERATINGCFM}
  1116.     INLINE $7079, $AAAA;
  1117.     {$ENDC}
  1118. PROCEDURE SampleNumToMediaTime(theMedia: Media; logicalSampleNum: LONGINT; VAR sampleTime: TimeValue; VAR sampleDuration: TimeValue);
  1119.     {$IFC NOT GENERATINGCFM}
  1120.     INLINE $707A, $AAAA;
  1121.     {$ENDC}
  1122. PROCEDURE MediaTimeToSampleNum(theMedia: Media; time: TimeValue; VAR sampleNum: LONGINT; VAR sampleTime: TimeValue; VAR sampleDuration: TimeValue);
  1123.     {$IFC NOT GENERATINGCFM}
  1124.     INLINE $707B, $AAAA;
  1125.     {$ENDC}
  1126. FUNCTION AddMediaSample(theMedia: Media; dataIn: Handle; inOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; VAR sampleTime: TimeValue): OSErr;
  1127.     {$IFC NOT GENERATINGCFM}
  1128.     INLINE $707C, $AAAA;
  1129.     {$ENDC}
  1130. FUNCTION AddMediaSampleReference(theMedia: Media; dataOffset: LONGINT; size: LONGINT; durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleFlags: INTEGER; VAR sampleTime: TimeValue): OSErr;
  1131.     {$IFC NOT GENERATINGCFM}
  1132.     INLINE $707D, $AAAA;
  1133.     {$ENDC}
  1134. FUNCTION AddMediaSampleReferences(theMedia: Media; sampleDescriptionH: SampleDescriptionHandle; numberOfSamples: LONGINT; sampleRefs: SampleReferencePtr; VAR sampleTime: TimeValue): OSErr;
  1135.     {$IFC NOT GENERATINGCFM}
  1136.     INLINE $303C, $1F7, $AAAA;
  1137.     {$ENDC}
  1138. FUNCTION GetMediaSample(theMedia: Media; dataOut: Handle; maxSizeToGrow: LONGINT; VAR size: LONGINT; time: TimeValue; VAR sampleTime: TimeValue; VAR durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; VAR numberOfSamples: LONGINT; VAR sampleFlags: INTEGER): OSErr;
  1139.     {$IFC NOT GENERATINGCFM}
  1140.     INLINE $707E, $AAAA;
  1141.     {$ENDC}
  1142. FUNCTION GetMediaSampleReference(theMedia: Media; VAR dataOffset: LONGINT; VAR size: LONGINT; time: TimeValue; VAR sampleTime: TimeValue; VAR durationPerSample: TimeValue; sampleDescriptionH: SampleDescriptionHandle; VAR sampleDescriptionIndex: LONGINT; maxNumberOfSamples: LONGINT; VAR numberOfSamples: LONGINT; VAR sampleFlags: INTEGER): OSErr;
  1143.     {$IFC NOT GENERATINGCFM}
  1144.     INLINE $707F, $AAAA;
  1145.     {$ENDC}
  1146. FUNCTION SetMediaPreferredChunkSize(theMedia: Media; maxChunkSize: LONGINT): OSErr;
  1147.     {$IFC NOT GENERATINGCFM}
  1148.     INLINE $303C, $1F8, $AAAA;
  1149.     {$ENDC}
  1150. FUNCTION GetMediaPreferredChunkSize(theMedia: Media; VAR maxChunkSize: LONGINT): OSErr;
  1151.     {$IFC NOT GENERATINGCFM}
  1152.     INLINE $303C, $1F9, $AAAA;
  1153.     {$ENDC}
  1154. FUNCTION SetMediaShadowSync(theMedia: Media; frameDiffSampleNum: LONGINT; syncSampleNum: LONGINT): OSErr;
  1155.     {$IFC NOT GENERATINGCFM}
  1156.     INLINE $303C, $121, $AAAA;
  1157.     {$ENDC}
  1158. FUNCTION GetMediaShadowSync(theMedia: Media; frameDiffSampleNum: LONGINT; VAR syncSampleNum: LONGINT): OSErr;
  1159.     {$IFC NOT GENERATINGCFM}
  1160.     INLINE $303C, $122, $AAAA;
  1161.     {$ENDC}
  1162. {************************
  1163. * Editing Routines
  1164. *************************}
  1165. FUNCTION InsertMediaIntoTrack(theTrack: Track; trackStart: TimeValue; mediaTime: TimeValue; mediaDuration: TimeValue; mediaRate: Fixed): OSErr;
  1166.     {$IFC NOT GENERATINGCFM}
  1167.     INLINE $303C, $183, $AAAA;
  1168.     {$ENDC}
  1169. FUNCTION InsertTrackSegment(srcTrack: Track; dstTrack: Track; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1170.     {$IFC NOT GENERATINGCFM}
  1171.     INLINE $303C, $85, $AAAA;
  1172.     {$ENDC}
  1173. FUNCTION InsertMovieSegment(srcMovie: Movie; dstMovie: Movie; srcIn: TimeValue; srcDuration: TimeValue; dstIn: TimeValue): OSErr;
  1174.     {$IFC NOT GENERATINGCFM}
  1175.     INLINE $303C, $86, $AAAA;
  1176.     {$ENDC}
  1177. FUNCTION InsertEmptyTrackSegment(dstTrack: Track; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1178.     {$IFC NOT GENERATINGCFM}
  1179.     INLINE $303C, $87, $AAAA;
  1180.     {$ENDC}
  1181. FUNCTION InsertEmptyMovieSegment(dstMovie: Movie; dstIn: TimeValue; dstDuration: TimeValue): OSErr;
  1182.     {$IFC NOT GENERATINGCFM}
  1183.     INLINE $303C, $88, $AAAA;
  1184.     {$ENDC}
  1185. FUNCTION DeleteTrackSegment(theTrack: Track; startTime: TimeValue; duration: TimeValue): OSErr;
  1186.     {$IFC NOT GENERATINGCFM}
  1187.     INLINE $303C, $89, $AAAA;
  1188.     {$ENDC}
  1189. FUNCTION DeleteMovieSegment(theMovie: Movie; startTime: TimeValue; duration: TimeValue): OSErr;
  1190.     {$IFC NOT GENERATINGCFM}
  1191.     INLINE $303C, $8A, $AAAA;
  1192.     {$ENDC}
  1193. FUNCTION ScaleTrackSegment(theTrack: Track; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1194.     {$IFC NOT GENERATINGCFM}
  1195.     INLINE $303C, $8B, $AAAA;
  1196.     {$ENDC}
  1197. FUNCTION ScaleMovieSegment(theMovie: Movie; startTime: TimeValue; oldDuration: TimeValue; newDuration: TimeValue): OSErr;
  1198.     {$IFC NOT GENERATINGCFM}
  1199.     INLINE $303C, $8C, $AAAA;
  1200.     {$ENDC}
  1201. {************************
  1202. * Hi-level Editing Routines
  1203. *************************}
  1204. FUNCTION CutMovieSelection(theMovie: Movie): Movie;
  1205.     {$IFC NOT GENERATINGCFM}
  1206.     INLINE $303C, $8D, $AAAA;
  1207.     {$ENDC}
  1208. FUNCTION CopyMovieSelection(theMovie: Movie): Movie;
  1209.     {$IFC NOT GENERATINGCFM}
  1210.     INLINE $303C, $8E, $AAAA;
  1211.     {$ENDC}
  1212. PROCEDURE PasteMovieSelection(theMovie: Movie; src: Movie);
  1213.     {$IFC NOT GENERATINGCFM}
  1214.     INLINE $303C, $8F, $AAAA;
  1215.     {$ENDC}
  1216. PROCEDURE AddMovieSelection(theMovie: Movie; src: Movie);
  1217.     {$IFC NOT GENERATINGCFM}
  1218.     INLINE $303C, $152, $AAAA;
  1219.     {$ENDC}
  1220. PROCEDURE ClearMovieSelection(theMovie: Movie);
  1221.     {$IFC NOT GENERATINGCFM}
  1222.     INLINE $303C, $E1, $AAAA;
  1223.     {$ENDC}
  1224. FUNCTION PasteHandleIntoMovie(h: Handle; handleType: OSType; theMovie: Movie; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1225.     {$IFC NOT GENERATINGCFM}
  1226.     INLINE $303C, $CB, $AAAA;
  1227.     {$ENDC}
  1228. FUNCTION PutMovieIntoTypedHandle(theMovie: Movie; targetTrack: Track; handleType: OSType; publicMovie: Handle; start: TimeValue; dur: TimeValue; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1229.     {$IFC NOT GENERATINGCFM}
  1230.     INLINE $303C, $1CD, $AAAA;
  1231.     {$ENDC}
  1232. FUNCTION IsScrapMovie(targetTrack: Track): Component;
  1233.     {$IFC NOT GENERATINGCFM}
  1234.     INLINE $303C, $CC, $AAAA;
  1235.     {$ENDC}
  1236. {************************
  1237. * Middle-level Editing Routines
  1238. *************************}
  1239. FUNCTION CopyTrackSettings(srcTrack: Track; dstTrack: Track): OSErr;
  1240.     {$IFC NOT GENERATINGCFM}
  1241.     INLINE $303C, $153, $AAAA;
  1242.     {$ENDC}
  1243. FUNCTION CopyMovieSettings(srcMovie: Movie; dstMovie: Movie): OSErr;
  1244.     {$IFC NOT GENERATINGCFM}
  1245.     INLINE $303C, $154, $AAAA;
  1246.     {$ENDC}
  1247. FUNCTION AddEmptyTrackToMovie(srcTrack: Track; dstMovie: Movie; dataRef: Handle; dataRefType: OSType; VAR dstTrack: Track): OSErr;
  1248.     {$IFC NOT GENERATINGCFM}
  1249.     INLINE $7074, $AAAA;
  1250.     {$ENDC}
  1251. {************************
  1252. * movie & track edit state routines
  1253. *************************}
  1254. FUNCTION NewMovieEditState(theMovie: Movie): MovieEditState;
  1255.     {$IFC NOT GENERATINGCFM}
  1256.     INLINE $303C, $104, $AAAA;
  1257.     {$ENDC}
  1258. FUNCTION UseMovieEditState(theMovie: Movie; toState: MovieEditState): OSErr;
  1259.     {$IFC NOT GENERATINGCFM}
  1260.     INLINE $303C, $105, $AAAA;
  1261.     {$ENDC}
  1262. FUNCTION DisposeMovieEditState(state: MovieEditState): OSErr;
  1263.     {$IFC NOT GENERATINGCFM}
  1264.     INLINE $303C, $106, $AAAA;
  1265.     {$ENDC}
  1266. FUNCTION NewTrackEditState(theTrack: Track): TrackEditState;
  1267.     {$IFC NOT GENERATINGCFM}
  1268.     INLINE $303C, $107, $AAAA;
  1269.     {$ENDC}
  1270. FUNCTION UseTrackEditState(theTrack: Track; state: TrackEditState): OSErr;
  1271.     {$IFC NOT GENERATINGCFM}
  1272.     INLINE $303C, $108, $AAAA;
  1273.     {$ENDC}
  1274. FUNCTION DisposeTrackEditState(state: TrackEditState): OSErr;
  1275.     {$IFC NOT GENERATINGCFM}
  1276.     INLINE $303C, $109, $AAAA;
  1277.     {$ENDC}
  1278. {************************
  1279. * track reference routines
  1280. *************************}
  1281. FUNCTION AddTrackReference(theTrack: Track; refTrack: Track; refType: OSType; VAR addedIndex: LONGINT): OSErr;
  1282.     {$IFC NOT GENERATINGCFM}
  1283.     INLINE $303C, $1F0, $AAAA;
  1284.     {$ENDC}
  1285. FUNCTION DeleteTrackReference(theTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1286.     {$IFC NOT GENERATINGCFM}
  1287.     INLINE $303C, $1F1, $AAAA;
  1288.     {$ENDC}
  1289. FUNCTION SetTrackReference(theTrack: Track; refTrack: Track; refType: OSType; index: LONGINT): OSErr;
  1290.     {$IFC NOT GENERATINGCFM}
  1291.     INLINE $303C, $1F2, $AAAA;
  1292.     {$ENDC}
  1293. FUNCTION GetTrackReference(theTrack: Track; refType: OSType; index: LONGINT): Track;
  1294.     {$IFC NOT GENERATINGCFM}
  1295.     INLINE $303C, $1F3, $AAAA;
  1296.     {$ENDC}
  1297. FUNCTION GetNextTrackReferenceType(theTrack: Track; refType: OSType): OSType;
  1298.     {$IFC NOT GENERATINGCFM}
  1299.     INLINE $303C, $1F4, $AAAA;
  1300.     {$ENDC}
  1301. FUNCTION GetTrackReferenceCount(theTrack: Track; refType: OSType): LONGINT;
  1302.     {$IFC NOT GENERATINGCFM}
  1303.     INLINE $303C, $1F5, $AAAA;
  1304.     {$ENDC}
  1305. {************************
  1306. * high level file conversion routines
  1307. *************************}
  1308. FUNCTION ConvertFileToMovieFile({CONST}VAR inputFile: FSSpec; {CONST}VAR outputFile: FSSpec; creator: OSType; scriptTag: ScriptCode; VAR resID: INTEGER; flags: LONGINT; userComp: ComponentInstance; proc: MovieProgressUPP; refCon: LONGINT): OSErr;
  1309.     {$IFC NOT GENERATINGCFM}
  1310.     INLINE $303C, $1CB, $AAAA;
  1311.     {$ENDC}
  1312. FUNCTION ConvertMovieToFile(theMovie: Movie; onlyTrack: Track; VAR outputFile: FSSpec; fileType: OSType; creator: OSType; scriptTag: ScriptCode; VAR resID: INTEGER; flags: LONGINT; userComp: ComponentInstance): OSErr;
  1313.     {$IFC NOT GENERATINGCFM}
  1314.     INLINE $303C, $1CC, $AAAA;
  1315.     {$ENDC}
  1316. {************************
  1317. * Movie Timebase Conversion Routines
  1318. *************************}
  1319. FUNCTION TrackTimeToMediaTime(value: TimeValue; theTrack: Track): TimeValue;
  1320.     {$IFC NOT GENERATINGCFM}
  1321.     INLINE $303C, $96, $AAAA;
  1322.     {$ENDC}
  1323. FUNCTION GetTrackEditRate(theTrack: Track; atTime: TimeValue): Fixed;
  1324.     {$IFC NOT GENERATINGCFM}
  1325.     INLINE $303C, $123, $AAAA;
  1326.     {$ENDC}
  1327. {************************
  1328. * Miscellaneous Routines
  1329. *************************}
  1330. FUNCTION GetMovieDataSize(theMovie: Movie; startTime: TimeValue; duration: TimeValue): LONGINT;
  1331.     {$IFC NOT GENERATINGCFM}
  1332.     INLINE $303C, $98, $AAAA;
  1333.     {$ENDC}
  1334. FUNCTION GetTrackDataSize(theTrack: Track; startTime: TimeValue; duration: TimeValue): LONGINT;
  1335.     {$IFC NOT GENERATINGCFM}
  1336.     INLINE $303C, $149, $AAAA;
  1337.     {$ENDC}
  1338. FUNCTION GetMediaDataSize(theMedia: Media; startTime: TimeValue; duration: TimeValue): LONGINT;
  1339.     {$IFC NOT GENERATINGCFM}
  1340.     INLINE $303C, $99, $AAAA;
  1341.     {$ENDC}
  1342. FUNCTION PtInMovie(theMovie: Movie; pt: Point): BOOLEAN;
  1343.     {$IFC NOT GENERATINGCFM}
  1344.     INLINE $303C, $9A, $AAAA;
  1345.     {$ENDC}
  1346. FUNCTION PtInTrack(theTrack: Track; pt: Point): BOOLEAN;
  1347.     {$IFC NOT GENERATINGCFM}
  1348.     INLINE $303C, $9B, $AAAA;
  1349.     {$ENDC}
  1350. {************************
  1351. * Group Selection Routines
  1352. *************************}
  1353. PROCEDURE SetMovieLanguage(theMovie: Movie; language: LONGINT);
  1354.     {$IFC NOT GENERATINGCFM}
  1355.     INLINE $303C, $9C, $AAAA;
  1356.     {$ENDC}
  1357. {************************
  1358. * User Data
  1359. *************************}
  1360. FUNCTION GetUserData(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT): OSErr;
  1361.     {$IFC NOT GENERATINGCFM}
  1362.     INLINE $303C, $9E, $AAAA;
  1363.     {$ENDC}
  1364. FUNCTION AddUserData(theUserData: UserData; data: Handle; udType: OSType): OSErr;
  1365.     {$IFC NOT GENERATINGCFM}
  1366.     INLINE $303C, $9F, $AAAA;
  1367.     {$ENDC}
  1368. FUNCTION RemoveUserData(theUserData: UserData; udType: OSType; index: LONGINT): OSErr;
  1369.     {$IFC NOT GENERATINGCFM}
  1370.     INLINE $303C, $A0, $AAAA;
  1371.     {$ENDC}
  1372. FUNCTION CountUserDataType(theUserData: UserData; udType: OSType): INTEGER;
  1373.     {$IFC NOT GENERATINGCFM}
  1374.     INLINE $303C, $14B, $AAAA;
  1375.     {$ENDC}
  1376. FUNCTION GetNextUserDataType(theUserData: UserData; udType: OSType): LONGINT;
  1377.     {$IFC NOT GENERATINGCFM}
  1378.     INLINE $303C, $1A5, $AAAA;
  1379.     {$ENDC}
  1380. FUNCTION GetUserDataItem(theUserData: UserData; data: UNIV Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1381.     {$IFC NOT GENERATINGCFM}
  1382.     INLINE $303C, $126, $AAAA;
  1383.     {$ENDC}
  1384. FUNCTION SetUserDataItem(theUserData: UserData; data: UNIV Ptr; size: LONGINT; udType: OSType; index: LONGINT): OSErr;
  1385.     {$IFC NOT GENERATINGCFM}
  1386.     INLINE $303C, $12E, $AAAA;
  1387.     {$ENDC}
  1388. FUNCTION AddUserDataText(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1389.     {$IFC NOT GENERATINGCFM}
  1390.     INLINE $303C, $14C, $AAAA;
  1391.     {$ENDC}
  1392. FUNCTION GetUserDataText(theUserData: UserData; data: Handle; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1393.     {$IFC NOT GENERATINGCFM}
  1394.     INLINE $303C, $14D, $AAAA;
  1395.     {$ENDC}
  1396. FUNCTION RemoveUserDataText(theUserData: UserData; udType: OSType; index: LONGINT; itlRegionTag: INTEGER): OSErr;
  1397.     {$IFC NOT GENERATINGCFM}
  1398.     INLINE $303C, $14E, $AAAA;
  1399.     {$ENDC}
  1400. FUNCTION NewUserData(VAR theUserData: UserData): OSErr;
  1401.     {$IFC NOT GENERATINGCFM}
  1402.     INLINE $303C, $12F, $AAAA;
  1403.     {$ENDC}
  1404. FUNCTION DisposeUserData(theUserData: UserData): OSErr;
  1405.     {$IFC NOT GENERATINGCFM}
  1406.     INLINE $303C, $130, $AAAA;
  1407.     {$ENDC}
  1408. FUNCTION NewUserDataFromHandle(h: Handle; VAR theUserData: UserData): OSErr;
  1409.     {$IFC NOT GENERATINGCFM}
  1410.     INLINE $303C, $131, $AAAA;
  1411.     {$ENDC}
  1412. FUNCTION PutUserDataIntoHandle(theUserData: UserData; h: Handle): OSErr;
  1413.     {$IFC NOT GENERATINGCFM}
  1414.     INLINE $303C, $132, $AAAA;
  1415.     {$ENDC}
  1416. PROCEDURE GetMediaNextInterestingTime(theMedia: Media; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1417.     {$IFC NOT GENERATINGCFM}
  1418.     INLINE $303C, $16D, $AAAA;
  1419.     {$ENDC}
  1420. PROCEDURE GetTrackNextInterestingTime(theTrack: Track; interestingTimeFlags: INTEGER; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1421.     {$IFC NOT GENERATINGCFM}
  1422.     INLINE $303C, $E2, $AAAA;
  1423.     {$ENDC}
  1424. PROCEDURE GetMovieNextInterestingTime(theMovie: Movie; interestingTimeFlags: INTEGER; numMediaTypes: INTEGER; {CONST}VAR whichMediaTypes: OSType; time: TimeValue; rate: Fixed; VAR interestingTime: TimeValue; VAR interestingDuration: TimeValue);
  1425.     {$IFC NOT GENERATINGCFM}
  1426.     INLINE $303C, $10E, $AAAA;
  1427.     {$ENDC}
  1428. FUNCTION CreateMovieFile({CONST}VAR fileSpec: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; VAR resRefNum: INTEGER; VAR newmovie: Movie): OSErr;
  1429.     {$IFC NOT GENERATINGCFM}
  1430.     INLINE $303C, $191, $AAAA;
  1431.     {$ENDC}
  1432. FUNCTION OpenMovieFile({CONST}VAR fileSpec: FSSpec; VAR resRefNum: INTEGER; permission: ByteParameter): OSErr;
  1433.     {$IFC NOT GENERATINGCFM}
  1434.     INLINE $303C, $192, $AAAA;
  1435.     {$ENDC}
  1436. FUNCTION CloseMovieFile(resRefNum: INTEGER): OSErr;
  1437.     {$IFC NOT GENERATINGCFM}
  1438.     INLINE $303C, $D5, $AAAA;
  1439.     {$ENDC}
  1440. FUNCTION DeleteMovieFile({CONST}VAR fileSpec: FSSpec): OSErr;
  1441.     {$IFC NOT GENERATINGCFM}
  1442.     INLINE $303C, $175, $AAAA;
  1443.     {$ENDC}
  1444. FUNCTION NewMovieFromFile(VAR theMovie: Movie; resRefNum: INTEGER; VAR resId: INTEGER; resName: StringPtr; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1445.     {$IFC NOT GENERATINGCFM}
  1446.     INLINE $303C, $F0, $AAAA;
  1447.     {$ENDC}
  1448. FUNCTION NewMovieFromHandle(VAR theMovie: Movie; h: Handle; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1449.     {$IFC NOT GENERATINGCFM}
  1450.     INLINE $303C, $F1, $AAAA;
  1451.     {$ENDC}
  1452. FUNCTION NewMovieFromDataFork(VAR theMovie: Movie; fRefNum: INTEGER; fileOffset: LONGINT; newMovieFlags: INTEGER; VAR dataRefWasChanged: BOOLEAN): OSErr;
  1453.     {$IFC NOT GENERATINGCFM}
  1454.     INLINE $303C, $1B3, $AAAA;
  1455.     {$ENDC}
  1456. FUNCTION NewMovieFromUserProc(VAR m: Movie; flags: INTEGER; VAR dataRefWasChanged: BOOLEAN; getProc: GetMovieUPP; refCon: UNIV Ptr; defaultDataRef: Handle; dataRefType: OSType): OSErr;
  1457.     {$IFC NOT GENERATINGCFM}
  1458.     INLINE $303C, $1EC, $AAAA;
  1459.     {$ENDC}
  1460. FUNCTION AddMovieResource(theMovie: Movie; resRefNum: INTEGER; VAR resId: INTEGER; resName: ConstStr255Param): OSErr;
  1461.     {$IFC NOT GENERATINGCFM}
  1462.     INLINE $303C, $D7, $AAAA;
  1463.     {$ENDC}
  1464. FUNCTION UpdateMovieResource(theMovie: Movie; resRefNum: INTEGER; resId: INTEGER; resName: ConstStr255Param): OSErr;
  1465.     {$IFC NOT GENERATINGCFM}
  1466.     INLINE $303C, $D8, $AAAA;
  1467.     {$ENDC}
  1468. FUNCTION RemoveMovieResource(resRefNum: INTEGER; resId: INTEGER): OSErr;
  1469.     {$IFC NOT GENERATINGCFM}
  1470.     INLINE $303C, $176, $AAAA;
  1471.     {$ENDC}
  1472. FUNCTION HasMovieChanged(theMovie: Movie): BOOLEAN;
  1473.     {$IFC NOT GENERATINGCFM}
  1474.     INLINE $303C, $D9, $AAAA;
  1475.     {$ENDC}
  1476. PROCEDURE ClearMovieChanged(theMovie: Movie);
  1477.     {$IFC NOT GENERATINGCFM}
  1478.     INLINE $303C, $113, $AAAA;
  1479.     {$ENDC}
  1480. FUNCTION SetMovieDefaultDataRef(theMovie: Movie; dataRef: Handle; dataRefType: OSType): OSErr;
  1481.     {$IFC NOT GENERATINGCFM}
  1482.     INLINE $303C, $1C1, $AAAA;
  1483.     {$ENDC}
  1484. FUNCTION GetMovieDefaultDataRef(theMovie: Movie; VAR dataRef: Handle; VAR dataRefType: OSType): OSErr;
  1485.     {$IFC NOT GENERATINGCFM}
  1486.     INLINE $303C, $1D2, $AAAA;
  1487.     {$ENDC}
  1488. FUNCTION SetMovieColorTable(theMovie: Movie; ctab: CTabHandle): OSErr;
  1489.     {$IFC NOT GENERATINGCFM}
  1490.     INLINE $303C, $205, $AAAA;
  1491.     {$ENDC}
  1492. FUNCTION GetMovieColorTable(theMovie: Movie; VAR ctab: CTabHandle): OSErr;
  1493.     {$IFC NOT GENERATINGCFM}
  1494.     INLINE $303C, $206, $AAAA;
  1495.     {$ENDC}
  1496. PROCEDURE FlattenMovie(theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}VAR theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT; VAR resId: INTEGER; resName: ConstStr255Param);
  1497.     {$IFC NOT GENERATINGCFM}
  1498.     INLINE $303C, $19B, $AAAA;
  1499.     {$ENDC}
  1500. FUNCTION FlattenMovieData(theMovie: Movie; movieFlattenFlags: LONGINT; {CONST}VAR theFile: FSSpec; creator: OSType; scriptTag: ScriptCode; createMovieFileFlags: LONGINT): Movie;
  1501.     {$IFC NOT GENERATINGCFM}
  1502.     INLINE $303C, $19C, $AAAA;
  1503.     {$ENDC}
  1504. PROCEDURE SetMovieProgressProc(theMovie: Movie; p: MovieProgressUPP; refcon: LONGINT);
  1505.     {$IFC NOT GENERATINGCFM}
  1506.     INLINE $303C, $19A, $AAAA;
  1507.     {$ENDC}
  1508. {************************
  1509. * Video Media routines
  1510. *************************}
  1511. FUNCTION GetVideoMediaGraphicsMode(mh: MediaHandler; VAR graphicsMode: LONGINT; VAR opColor: RGBColor): HandlerError;
  1512.     {$IFC NOT GENERATINGCFM}
  1513.     INLINE $2F3C, $8, $101, $7000, $A82A;
  1514.     {$ENDC}
  1515. FUNCTION SetVideoMediaGraphicsMode(mh: MediaHandler; graphicsMode: LONGINT; {CONST}VAR opColor: RGBColor): HandlerError;
  1516.     {$IFC NOT GENERATINGCFM}
  1517.     INLINE $2F3C, $8, $102, $7000, $A82A;
  1518.     {$ENDC}
  1519. {************************
  1520. * Sound Media routines
  1521. *************************}
  1522. FUNCTION GetSoundMediaBalance(mh: MediaHandler; VAR balance: INTEGER): HandlerError;
  1523.     {$IFC NOT GENERATINGCFM}
  1524.     INLINE $2F3C, $4, $101, $7000, $A82A;
  1525.     {$ENDC}
  1526. FUNCTION SetSoundMediaBalance(mh: MediaHandler; balance: INTEGER): HandlerError;
  1527.     {$IFC NOT GENERATINGCFM}
  1528.     INLINE $2F3C, $2, $102, $7000, $A82A;
  1529.     {$ENDC}
  1530. {************************
  1531. * Text Media routines
  1532. *************************}
  1533. { Return displayFlags for TextProc }
  1534.  
  1535. CONST
  1536.     txtProcDefaultDisplay        = 0;                            {    Use the media's default}
  1537.     txtProcDontDisplay            = 1;                            {    Don't display the text}
  1538.     txtProcDoDisplay            = 2;                            {    Do display the text}
  1539.  
  1540.  
  1541. FUNCTION SetTextProc(mh: MediaHandler; TextProc: TextMediaUPP; refcon: LONGINT): ComponentResult;
  1542.     {$IFC NOT GENERATINGCFM}
  1543.     INLINE $2F3C, $8, $101, $7000, $A82A;
  1544.     {$ENDC}
  1545. FUNCTION AddTextSample(mh: MediaHandler; text: Ptr; size: LONGINT; fontNumber: INTEGER; fontSize: INTEGER; textFace: Style; VAR textColor: RGBColor; VAR backColor: RGBColor; textJustification: INTEGER; VAR textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  1546.     {$IFC NOT GENERATINGCFM}
  1547.     INLINE $2F3C, $34, $102, $7000, $A82A;
  1548.     {$ENDC}
  1549. FUNCTION AddTESample(mh: MediaHandler; hTE: TEHandle; VAR backColor: RGBColor; textJustification: INTEGER; VAR textBox: Rect; displayFlags: LONGINT; scrollDelay: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  1550.     {$IFC NOT GENERATINGCFM}
  1551.     INLINE $2F3C, $26, $103, $7000, $A82A;
  1552.     {$ENDC}
  1553. FUNCTION AddHiliteSample(mh: MediaHandler; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor; duration: TimeValue; VAR sampleTime: TimeValue): ComponentResult;
  1554.     {$IFC NOT GENERATINGCFM}
  1555.     INLINE $2F3C, $10, $104, $7000, $A82A;
  1556.     {$ENDC}
  1557.  
  1558. CONST
  1559.     findTextEdgeOK                = 1 * (2**(0));                    { Okay to find text at specified sample time}
  1560.     findTextCaseSensitive        = 1 * (2**(1));                    { Case sensitive search}
  1561.     findTextReverseSearch        = 1 * (2**(2));                    { Search from sampleTime backwards}
  1562.     findTextWrapAround            = 1 * (2**(3));                    { Wrap search when beginning or end of movie is hit}
  1563.     findTextUseOffset            = 1 * (2**(4));                    { Begin search at the given character offset into sample rather than edge}
  1564.  
  1565.  
  1566. FUNCTION FindNextText(mh: MediaHandler; text: Ptr; size: LONGINT; findFlags: INTEGER; startTime: TimeValue; VAR foundTime: TimeValue; VAR foundDuration: TimeValue; VAR offset: LONGINT): ComponentResult;
  1567.     {$IFC NOT GENERATINGCFM}
  1568.     INLINE $2F3C, $1A, $105, $7000, $A82A;
  1569.     {$ENDC}
  1570. FUNCTION HiliteTextSample(mh: MediaHandler; sampleTime: TimeValue; hiliteStart: INTEGER; hiliteEnd: INTEGER; VAR rgbHiliteColor: RGBColor): ComponentResult;
  1571.     {$IFC NOT GENERATINGCFM}
  1572.     INLINE $2F3C, $C, $106, $7000, $A82A;
  1573.     {$ENDC}
  1574.  
  1575. CONST
  1576.     dropShadowOffsetType        = 'drpo';
  1577.     dropShadowTranslucencyType    = 'drpt';
  1578.  
  1579.  
  1580. FUNCTION SetTextSampleData(mh: MediaHandler; data: UNIV Ptr; dataType: OSType): ComponentResult;
  1581.     {$IFC NOT GENERATINGCFM}
  1582.     INLINE $2F3C, $8, $107, $7000, $A82A;
  1583.     {$ENDC}
  1584. FUNCTION MovieSearchText(theMovie: Movie; text: Ptr; size: LONGINT; searchFlags: LONGINT; VAR searchTrack: Track; VAR searchTime: TimeValue; VAR searchOffset: LONGINT): OSErr;
  1585.     {$IFC NOT GENERATINGCFM}
  1586.     INLINE $303C, $207, $AAAA;
  1587.     {$ENDC}
  1588. PROCEDURE GetPosterBox(theMovie: Movie; VAR boxRect: Rect);
  1589.     {$IFC NOT GENERATINGCFM}
  1590.     INLINE $303C, $16F, $AAAA;
  1591.     {$ENDC}
  1592. PROCEDURE SetPosterBox(theMovie: Movie; {CONST}VAR boxRect: Rect);
  1593.     {$IFC NOT GENERATINGCFM}
  1594.     INLINE $303C, $170, $AAAA;
  1595.     {$ENDC}
  1596. FUNCTION GetMovieSegmentDisplayBoundsRgn(theMovie: Movie; time: TimeValue; duration: TimeValue): RgnHandle;
  1597.     {$IFC NOT GENERATINGCFM}
  1598.     INLINE $303C, $16C, $AAAA;
  1599.     {$ENDC}
  1600. FUNCTION GetTrackSegmentDisplayBoundsRgn(theTrack: Track; time: TimeValue; duration: TimeValue): RgnHandle;
  1601.     {$IFC NOT GENERATINGCFM}
  1602.     INLINE $303C, $16B, $AAAA;
  1603.     {$ENDC}
  1604. PROCEDURE SetMovieCoverProcs(theMovie: Movie; uncoverProc: MovieRgnCoverUPP; coverProc: MovieRgnCoverUPP; refcon: LONGINT);
  1605.     {$IFC NOT GENERATINGCFM}
  1606.     INLINE $303C, $179, $AAAA;
  1607.     {$ENDC}
  1608. FUNCTION GetMovieCoverProcs(theMovie: Movie; VAR uncoverProc: MovieRgnCoverUPP; VAR coverProc: MovieRgnCoverUPP; VAR refcon: LONGINT): OSErr;
  1609.     {$IFC NOT GENERATINGCFM}
  1610.     INLINE $303C, $1DD, $AAAA;
  1611.     {$ENDC}
  1612. FUNCTION GetTrackStatus(theTrack: Track): ComponentResult;
  1613.     {$IFC NOT GENERATINGCFM}
  1614.     INLINE $303C, $172, $AAAA;
  1615.     {$ENDC}
  1616. FUNCTION GetMovieStatus(theMovie: Movie; VAR firstProblemTrack: Track): ComponentResult;
  1617.     {$IFC NOT GENERATINGCFM}
  1618.     INLINE $303C, $173, $AAAA;
  1619.     {$ENDC}
  1620. {***
  1621.     Movie Controller support routines
  1622. ***}
  1623. FUNCTION NewMovieController(theMovie: Movie; {CONST}VAR movieRect: Rect; someFlags: LONGINT): ComponentInstance;
  1624.     {$IFC NOT GENERATINGCFM}
  1625.     INLINE $303C, $18A, $AAAA;
  1626.     {$ENDC}
  1627. PROCEDURE DisposeMovieController(mc: ComponentInstance);
  1628.     {$IFC NOT GENERATINGCFM}
  1629.     INLINE $303C, $18B, $AAAA;
  1630.     {$ENDC}
  1631. PROCEDURE ShowMovieInformation(theMovie: Movie; filterProc: ModalFilterUPP; refCon: LONGINT);
  1632.     {$IFC NOT GENERATINGCFM}
  1633.     INLINE $303C, $209, $AAAA;
  1634.     {$ENDC}
  1635. {****
  1636.     Scrap routines
  1637. ****}
  1638. FUNCTION PutMovieOnScrap(theMovie: Movie; movieScrapFlags: LONGINT): OSErr;
  1639.     {$IFC NOT GENERATINGCFM}
  1640.     INLINE $303C, $18C, $AAAA;
  1641.     {$ENDC}
  1642. FUNCTION NewMovieFromScrap(newMovieFlags: LONGINT): Movie;
  1643.     {$IFC NOT GENERATINGCFM}
  1644.     INLINE $303C, $18D, $AAAA;
  1645.     {$ENDC}
  1646. {****
  1647.     DataRef routines
  1648. ****}
  1649. FUNCTION GetMediaDataRef(theMedia: Media; index: INTEGER; VAR dataRef: Handle; VAR dataRefType: OSType; VAR dataRefAttributes: LONGINT): OSErr;
  1650.     {$IFC NOT GENERATINGCFM}
  1651.     INLINE $303C, $197, $AAAA;
  1652.     {$ENDC}
  1653. FUNCTION SetMediaDataRef(theMedia: Media; index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1654.     {$IFC NOT GENERATINGCFM}
  1655.     INLINE $303C, $1C9, $AAAA;
  1656.     {$ENDC}
  1657. FUNCTION SetMediaDataRefAttributes(theMedia: Media; index: INTEGER; dataRefAttributes: LONGINT): OSErr;
  1658.     {$IFC NOT GENERATINGCFM}
  1659.     INLINE $303C, $1CA, $AAAA;
  1660.     {$ENDC}
  1661. FUNCTION AddMediaDataRef(theMedia: Media; VAR index: INTEGER; dataRef: Handle; dataRefType: OSType): OSErr;
  1662.     {$IFC NOT GENERATINGCFM}
  1663.     INLINE $303C, $198, $AAAA;
  1664.     {$ENDC}
  1665. FUNCTION GetMediaDataRefCount(theMedia: Media; VAR count: INTEGER): OSErr;
  1666.     {$IFC NOT GENERATINGCFM}
  1667.     INLINE $303C, $199, $AAAA;
  1668.     {$ENDC}
  1669. {****
  1670.     Playback hint routines
  1671. ****}
  1672. PROCEDURE SetMoviePlayHints(theMovie: Movie; flags: LONGINT; flagsMask: LONGINT);
  1673.     {$IFC NOT GENERATINGCFM}
  1674.     INLINE $303C, $1A1, $AAAA;
  1675.     {$ENDC}
  1676. PROCEDURE SetMediaPlayHints(theMedia: Media; flags: LONGINT; flagsMask: LONGINT);
  1677.     {$IFC NOT GENERATINGCFM}
  1678.     INLINE $303C, $1A2, $AAAA;
  1679.     {$ENDC}
  1680. {****
  1681.     Load time track hints
  1682. ****}
  1683.  
  1684. CONST
  1685.     preloadAlways                = 1 * (2**(0));
  1686.     preloadOnlyIfEnabled        = 1 * (2**(1));
  1687.  
  1688.  
  1689. PROCEDURE SetTrackLoadSettings(theTrack: Track; preloadTime: TimeValue; preloadDuration: TimeValue; preloadFlags: LONGINT; defaultHints: LONGINT);
  1690.     {$IFC NOT GENERATINGCFM}
  1691.     INLINE $303C, $1E3, $AAAA;
  1692.     {$ENDC}
  1693. PROCEDURE GetTrackLoadSettings(theTrack: Track; VAR preloadTime: TimeValue; VAR preloadDuration: TimeValue; VAR preloadFlags: LONGINT; VAR defaultHints: LONGINT);
  1694.     {$IFC NOT GENERATINGCFM}
  1695.     INLINE $303C, $1E4, $AAAA;
  1696.     {$ENDC}
  1697.  
  1698. CONST
  1699.     MovieControllerComponentType = 'play';
  1700.  
  1701.     
  1702. TYPE
  1703.     MovieController = ComponentInstance;
  1704.  
  1705.  
  1706. CONST
  1707.     mcActionIdle                = 1;                            { no param}
  1708.     mcActionDraw                = 2;                            { param is WindowPtr}
  1709.     mcActionActivate            = 3;                            { no param}
  1710.     mcActionDeactivate            = 4;                            { no param}
  1711.     mcActionMouseDown            = 5;                            { param is pointer to EventRecord}
  1712.     mcActionKey                    = 6;                            { param is pointer to EventRecord}
  1713.     mcActionPlay                = 8;                            { param is Fixed, play rate}
  1714.     mcActionGoToTime            = 12;                            { param is TimeRecord}
  1715.     mcActionSetVolume            = 14;                            { param is a short}
  1716.     mcActionGetVolume            = 15;                            { param is pointer to a short}
  1717.     mcActionStep                = 18;                            { param is number of steps (short)}
  1718.     mcActionSetLooping            = 21;                            { param is Boolean}
  1719.     mcActionGetLooping            = 22;                            { param is pointer to a Boolean}
  1720.     mcActionSetLoopIsPalindrome    = 23;                            { param is Boolean}
  1721.     mcActionGetLoopIsPalindrome    = 24;                            { param is pointer to a Boolean}
  1722.     mcActionSetGrowBoxBounds    = 25;                            { param is a Rect}
  1723.     mcActionControllerSizeChanged = 26;                            { no param}
  1724.     mcActionSetSelectionBegin    = 29;                            { param is TimeRecord}
  1725.     mcActionSetSelectionDuration = 30;                            { param is TimeRecord, action only taken on set-duration}
  1726.     mcActionSetKeysEnabled        = 32;                            { param is Boolean}
  1727.     mcActionGetKeysEnabled        = 33;                            { param is pointer to Boolean}
  1728.     mcActionSetPlaySelection    = 34;                            { param is Boolean}
  1729.     mcActionGetPlaySelection    = 35;                            { param is pointer to Boolean}
  1730.     mcActionSetUseBadge            = 36;                            { param is Boolean}
  1731.     mcActionGetUseBadge            = 37;                            { param is pointer to Boolean}
  1732.     mcActionSetFlags            = 38;                            { param is long of flags}
  1733.     mcActionGetFlags            = 39;                            { param is pointer to a long of flags}
  1734.     mcActionSetPlayEveryFrame    = 40;                            { param is Boolean}
  1735.     mcActionGetPlayEveryFrame    = 41;                            { param is pointer to Boolean}
  1736.     mcActionGetPlayRate            = 42;                            { param is pointer to Fixed}
  1737.     mcActionShowBalloon            = 43;                            { param is a pointer to a boolean. set to false to stop balloon}
  1738.     mcActionBadgeClick            = 44;                            { param is pointer to Boolean. set to false to ignore click}
  1739.     mcActionMovieClick            = 45;                            { param is pointer to event record. change “what” to nullEvt to kill click}
  1740.     mcActionSuspend                = 46;                            { no param}
  1741.     mcActionResume                = 47;                            { no param}
  1742.     mcActionSetControllerKeysEnabled = 48;                        { param is Boolean}
  1743.     mcActionGetTimeSliderRect    = 49;                            { param is pointer to rect}
  1744.     mcActionMovieEdited            = 50;                            { no param}
  1745.     mcActionGetDragEnabled        = 51;                            { param is pointer to Boolean}
  1746.     mcActionSetDragEnabled        = 52;                            { param is Boolean}
  1747.  
  1748.     
  1749. TYPE
  1750.     mcAction = INTEGER;
  1751.  
  1752.  
  1753. CONST
  1754.     mcFlagSuppressMovieFrame    = 1 * (2**(0));
  1755.     mcFlagSuppressStepButtons    = 1 * (2**(1));
  1756.     mcFlagSuppressSpeakerButton    = 1 * (2**(2));
  1757.     mcFlagsUseWindowPalette        = 1 * (2**(3));
  1758.     mcFlagsDontInvalidate        = 1 * (2**(4));
  1759.  
  1760.     mcPositionDontInvalidate    = 1 * (2**(5));
  1761.  
  1762.     
  1763. TYPE
  1764.     mcFlags = LONGINT;
  1765.  
  1766.     MCActionFilterProcPtr = ProcPtr;  { FUNCTION MCActionFilter(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr): BOOLEAN; }
  1767.     MCActionFilterWithRefConProcPtr = ProcPtr;  { FUNCTION MCActionFilterWithRefCon(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT): BOOLEAN; }
  1768.     MCActionFilterUPP = UniversalProcPtr;
  1769.     MCActionFilterWithRefConUPP = UniversalProcPtr;
  1770.  
  1771.  
  1772. CONST
  1773.     mcInfoUndoAvailable            = 1 * (2**(0));
  1774.     mcInfoCutAvailable            = 1 * (2**(1));
  1775.     mcInfoCopyAvailable            = 1 * (2**(2));
  1776.     mcInfoPasteAvailable        = 1 * (2**(3));
  1777.     mcInfoClearAvailable        = 1 * (2**(4));
  1778.     mcInfoHasSound                = 1 * (2**(5));
  1779.     mcInfoIsPlaying                = 1 * (2**(6));
  1780.     mcInfoIsLooping                = 1 * (2**(7));
  1781.     mcInfoIsInPalindrome        = 1 * (2**(8));
  1782.     mcInfoEditingEnabled        = 1 * (2**(9));
  1783.  
  1784. { menu item codes}
  1785.     mcMenuUndo                    = 1;
  1786.     mcMenuCut                    = 3;
  1787.     mcMenuCopy                    = 4;
  1788.     mcMenuPaste                    = 5;
  1789.     mcMenuClear                    = 6;
  1790.  
  1791. { target management }
  1792.  
  1793. FUNCTION MCSetMovie(mc: MovieController; theMovie: Movie; movieWindow: WindowPtr; where: Point): ComponentResult;
  1794.     {$IFC NOT GENERATINGCFM}
  1795.     INLINE $2F3C, $C, $2, $7000, $A82A;
  1796.     {$ENDC}
  1797. FUNCTION MCGetIndMovie(mc: MovieController; index: INTEGER): Movie;
  1798.     {$IFC NOT GENERATINGCFM}
  1799.     INLINE $2F3C, $2, $5, $7000, $A82A;
  1800.     {$ENDC}
  1801. FUNCTION MCRemoveMovie(mc: MovieController): ComponentResult;
  1802.     {$IFC NOT GENERATINGCFM}
  1803.     INLINE $2F3C, 0, $6, $7000, $A82A;
  1804.     {$ENDC}
  1805. { event handling etc. }
  1806. FUNCTION MCIsPlayerEvent(mc: MovieController; {CONST}VAR e: EventRecord): ComponentResult;
  1807.     {$IFC NOT GENERATINGCFM}
  1808.     INLINE $2F3C, $4, $7, $7000, $A82A;
  1809.     {$ENDC}
  1810. { obsolete. use MCSetActionFilterWithRefCon instead. }
  1811. FUNCTION MCSetActionFilter(mc: MovieController; blob: MCActionFilterUPP): ComponentResult;
  1812.     {$IFC NOT GENERATINGCFM}
  1813.     INLINE $2F3C, $4, $8, $7000, $A82A;
  1814.     {$ENDC}
  1815. {
  1816.     proc is of the form:
  1817.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  1818.     proc returns TRUE if it handles the action, FALSE if not
  1819.     action is passed as a VAR so that it could be changed by filter (ick)
  1820.     this is consistent with the current dialog manager stuff
  1821.     params is any potential parameters that go with the action <triple ick> 
  1822.         such as set playback rate to xxx.
  1823. }
  1824. FUNCTION MCDoAction(mc: MovieController; action: INTEGER; params: UNIV Ptr): ComponentResult;
  1825.     {$IFC NOT GENERATINGCFM}
  1826.     INLINE $2F3C, $6, $9, $7000, $A82A;
  1827.     {$ENDC}
  1828. { state type things }
  1829. FUNCTION MCSetControllerAttached(mc: MovieController; attach: BOOLEAN): ComponentResult;
  1830.     {$IFC NOT GENERATINGCFM}
  1831.     INLINE $2F3C, $2, $A, $7000, $A82A;
  1832.     {$ENDC}
  1833. FUNCTION MCIsControllerAttached(mc: MovieController): ComponentResult;
  1834.     {$IFC NOT GENERATINGCFM}
  1835.     INLINE $2F3C, 0, $B, $7000, $A82A;
  1836.     {$ENDC}
  1837. FUNCTION MCSetControllerPort(mc: MovieController; gp: CGrafPtr): ComponentResult;
  1838.     {$IFC NOT GENERATINGCFM}
  1839.     INLINE $2F3C, $4, $C, $7000, $A82A;
  1840.     {$ENDC}
  1841. FUNCTION MCGetControllerPort(mc: MovieController): CGrafPtr;
  1842.     {$IFC NOT GENERATINGCFM}
  1843.     INLINE $2F3C, 0, $D, $7000, $A82A;
  1844.     {$ENDC}
  1845. FUNCTION MCSetVisible(mc: MovieController; visible: BOOLEAN): ComponentResult;
  1846.     {$IFC NOT GENERATINGCFM}
  1847.     INLINE $2F3C, $2, $E, $7000, $A82A;
  1848.     {$ENDC}
  1849. FUNCTION MCGetVisible(mc: MovieController): ComponentResult;
  1850.     {$IFC NOT GENERATINGCFM}
  1851.     INLINE $2F3C, 0, $F, $7000, $A82A;
  1852.     {$ENDC}
  1853. FUNCTION MCGetControllerBoundsRect(mc: MovieController; VAR bounds: Rect): ComponentResult;
  1854.     {$IFC NOT GENERATINGCFM}
  1855.     INLINE $2F3C, $4, $10, $7000, $A82A;
  1856.     {$ENDC}
  1857. FUNCTION MCSetControllerBoundsRect(mc: MovieController; {CONST}VAR bounds: Rect): ComponentResult;
  1858.     {$IFC NOT GENERATINGCFM}
  1859.     INLINE $2F3C, $4, $11, $7000, $A82A;
  1860.     {$ENDC}
  1861. FUNCTION MCGetControllerBoundsRgn(mc: MovieController): RgnHandle;
  1862.     {$IFC NOT GENERATINGCFM}
  1863.     INLINE $2F3C, 0, $12, $7000, $A82A;
  1864.     {$ENDC}
  1865. FUNCTION MCGetWindowRgn(mc: MovieController; w: WindowPtr): RgnHandle;
  1866.     {$IFC NOT GENERATINGCFM}
  1867.     INLINE $2F3C, $4, $13, $7000, $A82A;
  1868.     {$ENDC}
  1869. { other stuff }
  1870. FUNCTION MCMovieChanged(mc: MovieController; m: Movie): ComponentResult;
  1871.     {$IFC NOT GENERATINGCFM}
  1872.     INLINE $2F3C, $4, $14, $7000, $A82A;
  1873.     {$ENDC}
  1874. {
  1875.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  1876.         can update our graphical (and internal) state accordingly.
  1877. }
  1878. FUNCTION MCSetDuration(mc: MovieController; duration: TimeValue): ComponentResult;
  1879.     {$IFC NOT GENERATINGCFM}
  1880.     INLINE $2F3C, $4, $15, $7000, $A82A;
  1881.     {$ENDC}
  1882. {
  1883.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  1884.         or MCSetMovie is called
  1885. }
  1886. FUNCTION MCGetCurrentTime(mc: MovieController; VAR scale: TimeScale): TimeValue;
  1887.     {$IFC NOT GENERATINGCFM}
  1888.     INLINE $2F3C, $4, $16, $7000, $A82A;
  1889.     {$ENDC}
  1890. {
  1891.     returns the time value and the time scale it is on. if there are no movies, the
  1892.         time scale is passed back as 0. scale is an optional parameter
  1893.  
  1894. }
  1895. FUNCTION MCNewAttachedController(mc: MovieController; theMovie: Movie; w: WindowPtr; where: Point): ComponentResult;
  1896.     {$IFC NOT GENERATINGCFM}
  1897.     INLINE $2F3C, $C, $17, $7000, $A82A;
  1898.     {$ENDC}
  1899. {
  1900.     makes m the only movie attached to the controller. makes the controller visible.
  1901.     the window and where parameters are passed a long to MCSetMovie and behave as
  1902.     described there
  1903. }
  1904. FUNCTION MCDraw(mc: MovieController; w: WindowPtr): ComponentResult;
  1905.     {$IFC NOT GENERATINGCFM}
  1906.     INLINE $2F3C, $4, $18, $7000, $A82A;
  1907.     {$ENDC}
  1908. FUNCTION MCActivate(mc: MovieController; w: WindowPtr; activate: BOOLEAN): ComponentResult;
  1909.     {$IFC NOT GENERATINGCFM}
  1910.     INLINE $2F3C, $6, $19, $7000, $A82A;
  1911.     {$ENDC}
  1912. FUNCTION MCIdle(mc: MovieController): ComponentResult;
  1913.     {$IFC NOT GENERATINGCFM}
  1914.     INLINE $2F3C, 0, $1A, $7000, $A82A;
  1915.     {$ENDC}
  1916. FUNCTION MCKey(mc: MovieController; key: ByteParameter; modifiers: LONGINT): ComponentResult;
  1917.     {$IFC NOT GENERATINGCFM}
  1918.     INLINE $2F3C, $6, $1B, $7000, $A82A;
  1919.     {$ENDC}
  1920. FUNCTION MCClick(mc: MovieController; w: WindowPtr; where: Point; when: LONGINT; modifiers: LONGINT): ComponentResult;
  1921.     {$IFC NOT GENERATINGCFM}
  1922.     INLINE $2F3C, $10, $1C, $7000, $A82A;
  1923.     {$ENDC}
  1924. {
  1925.     calls for editing
  1926. }
  1927. FUNCTION MCEnableEditing(mc: MovieController; enabled: BOOLEAN): ComponentResult;
  1928.     {$IFC NOT GENERATINGCFM}
  1929.     INLINE $2F3C, $2, $1D, $7000, $A82A;
  1930.     {$ENDC}
  1931. FUNCTION MCIsEditingEnabled(mc: MovieController): LONGINT;
  1932.     {$IFC NOT GENERATINGCFM}
  1933.     INLINE $2F3C, 0, $1E, $7000, $A82A;
  1934.     {$ENDC}
  1935. FUNCTION MCCopy(mc: MovieController): Movie;
  1936.     {$IFC NOT GENERATINGCFM}
  1937.     INLINE $2F3C, 0, $1F, $7000, $A82A;
  1938.     {$ENDC}
  1939. FUNCTION MCCut(mc: MovieController): Movie;
  1940.     {$IFC NOT GENERATINGCFM}
  1941.     INLINE $2F3C, 0, $20, $7000, $A82A;
  1942.     {$ENDC}
  1943. FUNCTION MCPaste(mc: MovieController; srcMovie: Movie): ComponentResult;
  1944.     {$IFC NOT GENERATINGCFM}
  1945.     INLINE $2F3C, $4, $21, $7000, $A82A;
  1946.     {$ENDC}
  1947. FUNCTION MCClear(mc: MovieController): ComponentResult;
  1948.     {$IFC NOT GENERATINGCFM}
  1949.     INLINE $2F3C, 0, $22, $7000, $A82A;
  1950.     {$ENDC}
  1951. FUNCTION MCUndo(mc: MovieController): ComponentResult;
  1952.     {$IFC NOT GENERATINGCFM}
  1953.     INLINE $2F3C, 0, $23, $7000, $A82A;
  1954.     {$ENDC}
  1955. {
  1956.  *    somewhat special stuff
  1957.  }
  1958. FUNCTION MCPositionController(mc: MovieController; {CONST}VAR movieRect: Rect; {CONST}VAR controllerRect: Rect; someFlags: LONGINT): ComponentResult;
  1959.     {$IFC NOT GENERATINGCFM}
  1960.     INLINE $2F3C, $C, $24, $7000, $A82A;
  1961.     {$ENDC}
  1962. FUNCTION MCGetControllerInfo(mc: MovieController; VAR someFlags: LONGINT): ComponentResult;
  1963.     {$IFC NOT GENERATINGCFM}
  1964.     INLINE $2F3C, $4, $25, $7000, $A82A;
  1965.     {$ENDC}
  1966. FUNCTION MCSetClip(mc: MovieController; theClip: RgnHandle; movieClip: RgnHandle): ComponentResult;
  1967.     {$IFC NOT GENERATINGCFM}
  1968.     INLINE $2F3C, $8, $28, $7000, $A82A;
  1969.     {$ENDC}
  1970. FUNCTION MCGetClip(mc: MovieController; VAR theClip: RgnHandle; VAR movieClip: RgnHandle): ComponentResult;
  1971.     {$IFC NOT GENERATINGCFM}
  1972.     INLINE $2F3C, $8, $29, $7000, $A82A;
  1973.     {$ENDC}
  1974. FUNCTION MCDrawBadge(mc: MovieController; movieRgn: RgnHandle; VAR badgeRgn: RgnHandle): ComponentResult;
  1975.     {$IFC NOT GENERATINGCFM}
  1976.     INLINE $2F3C, $8, $2A, $7000, $A82A;
  1977.     {$ENDC}
  1978. FUNCTION MCSetUpEditMenu(mc: MovieController; modifiers: LONGINT; mh: MenuHandle): ComponentResult;
  1979.     {$IFC NOT GENERATINGCFM}
  1980.     INLINE $2F3C, $8, $2B, $7000, $A82A;
  1981.     {$ENDC}
  1982. FUNCTION MCGetMenuString(mc: MovieController; modifiers: LONGINT; item: INTEGER; VAR aString: Str255): ComponentResult;
  1983.     {$IFC NOT GENERATINGCFM}
  1984.     INLINE $2F3C, $A, $2C, $7000, $A82A;
  1985.     {$ENDC}
  1986. FUNCTION MCSetActionFilterWithRefCon(mc: MovieController; blob: MCActionFilterWithRefConUPP; refCon: LONGINT): ComponentResult;
  1987.     {$IFC NOT GENERATINGCFM}
  1988.     INLINE $2F3C, $8, $2D, $7000, $A82A;
  1989.     {$ENDC}
  1990.  
  1991. CONST
  1992.     kMCSetMovieSelect            = $2;
  1993.     kMCGetIndMovieSelect        = $5;
  1994.     kMCRemoveMovieSelect        = $6;
  1995.     kMCIsPlayerEventSelect        = $7;
  1996.     kMCSetActionFilterSelect    = $8;
  1997.     kMCDoActionSelect            = $9;
  1998.     kMCSetControllerAttachedSelect = $A;
  1999.     kMCIsControllerAttachedSelect = $B;
  2000.     kMCSetControllerPortSelect    = $C;
  2001.     kMCGetControllerPortSelect    = $D;
  2002.     kMCSetVisibleSelect            = $E;
  2003.     kMCGetVisibleSelect            = $F;
  2004.     kMCGetControllerBoundsRectSelect = $10;
  2005.     kMCSetControllerBoundsRectSelect = $11;
  2006.     kMCGetControllerBoundsRgnSelect = $12;
  2007.     kMCGetWindowRgnSelect        = $13;
  2008.     kMCMovieChangedSelect        = $14;
  2009.     kMCSetDurationSelect        = $15;
  2010.     kMCGetCurrentTimeSelect        = $16;
  2011.     kMCNewAttachedControllerSelect = $17;
  2012.     kMCDrawSelect                = $18;
  2013.     kMCActivateSelect            = $19;
  2014.     kMCIdleSelect                = $1A;
  2015.     kMCKeySelect                = $1B;
  2016.     kMCClickSelect                = $1C;
  2017.     kMCEnableEditingSelect        = $1D;
  2018.     kMCIsEditingEnabledSelect    = $1E;
  2019.     kMCCopySelect                = $1F;
  2020.     kMCCutSelect                = $20;
  2021.     kMCPasteSelect                = $21;
  2022.     kMCClearSelect                = $22;
  2023.     kMCUndoSelect                = $23;
  2024.     kMCPositionControllerSelect    = $24;
  2025.     kMCGetControllerInfoSelect    = $25;
  2026.     kMCSetClipSelect            = $28;
  2027.     kMCGetClipSelect            = $29;
  2028.     kMCDrawBadgeSelect            = $2A;
  2029.     kMCSetUpEditMenuSelect        = $2B;
  2030.     kMCGetMenuStringSelect        = $2C;
  2031.     kMCSetActionFilterWithRefConSelect = $2D;
  2032.  
  2033. {***************************************
  2034. *                                        *
  2035. *          T  I  M  E  B  A  S  E            *
  2036. *                                        *
  2037. ***************************************}
  2038.  
  2039. FUNCTION NewTimeBase: TimeBase;
  2040.     {$IFC NOT GENERATINGCFM}
  2041.     INLINE $303C, $A5, $AAAA;
  2042.     {$ENDC}
  2043. PROCEDURE DisposeTimeBase(tb: TimeBase);
  2044.     {$IFC NOT GENERATINGCFM}
  2045.     INLINE $303C, $B6, $AAAA;
  2046.     {$ENDC}
  2047. FUNCTION GetTimeBaseTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2048.     {$IFC NOT GENERATINGCFM}
  2049.     INLINE $303C, $A6, $AAAA;
  2050.     {$ENDC}
  2051. PROCEDURE SetTimeBaseTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2052.     {$IFC NOT GENERATINGCFM}
  2053.     INLINE $303C, $A7, $AAAA;
  2054.     {$ENDC}
  2055. PROCEDURE SetTimeBaseValue(tb: TimeBase; t: TimeValue; s: TimeScale);
  2056.     {$IFC NOT GENERATINGCFM}
  2057.     INLINE $303C, $A8, $AAAA;
  2058.     {$ENDC}
  2059. FUNCTION GetTimeBaseRate(tb: TimeBase): Fixed;
  2060.     {$IFC NOT GENERATINGCFM}
  2061.     INLINE $303C, $A9, $AAAA;
  2062.     {$ENDC}
  2063. PROCEDURE SetTimeBaseRate(tb: TimeBase; r: Fixed);
  2064.     {$IFC NOT GENERATINGCFM}
  2065.     INLINE $303C, $AA, $AAAA;
  2066.     {$ENDC}
  2067. FUNCTION GetTimeBaseStartTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2068.     {$IFC NOT GENERATINGCFM}
  2069.     INLINE $303C, $AB, $AAAA;
  2070.     {$ENDC}
  2071. PROCEDURE SetTimeBaseStartTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2072.     {$IFC NOT GENERATINGCFM}
  2073.     INLINE $303C, $AC, $AAAA;
  2074.     {$ENDC}
  2075. FUNCTION GetTimeBaseStopTime(tb: TimeBase; s: TimeScale; VAR tr: TimeRecord): TimeValue;
  2076.     {$IFC NOT GENERATINGCFM}
  2077.     INLINE $303C, $AD, $AAAA;
  2078.     {$ENDC}
  2079. PROCEDURE SetTimeBaseStopTime(tb: TimeBase; {CONST}VAR tr: TimeRecord);
  2080.     {$IFC NOT GENERATINGCFM}
  2081.     INLINE $303C, $AE, $AAAA;
  2082.     {$ENDC}
  2083. FUNCTION GetTimeBaseFlags(tb: TimeBase): LONGINT;
  2084.     {$IFC NOT GENERATINGCFM}
  2085.     INLINE $303C, $B1, $AAAA;
  2086.     {$ENDC}
  2087. PROCEDURE SetTimeBaseFlags(tb: TimeBase; timeBaseFlags: LONGINT);
  2088.     {$IFC NOT GENERATINGCFM}
  2089.     INLINE $303C, $B2, $AAAA;
  2090.     {$ENDC}
  2091. PROCEDURE SetTimeBaseMasterTimeBase(slave: TimeBase; master: TimeBase; {CONST}VAR slaveZero: TimeRecord);
  2092.     {$IFC NOT GENERATINGCFM}
  2093.     INLINE $303C, $B4, $AAAA;
  2094.     {$ENDC}
  2095. FUNCTION GetTimeBaseMasterTimeBase(tb: TimeBase): TimeBase;
  2096.     {$IFC NOT GENERATINGCFM}
  2097.     INLINE $303C, $AF, $AAAA;
  2098.     {$ENDC}
  2099. PROCEDURE SetTimeBaseMasterClock(slave: TimeBase; clockMeister: Component; {CONST}VAR slaveZero: TimeRecord);
  2100.     {$IFC NOT GENERATINGCFM}
  2101.     INLINE $303C, $B3, $AAAA;
  2102.     {$ENDC}
  2103. FUNCTION GetTimeBaseMasterClock(tb: TimeBase): ComponentInstance;
  2104.     {$IFC NOT GENERATINGCFM}
  2105.     INLINE $303C, $B0, $AAAA;
  2106.     {$ENDC}
  2107. PROCEDURE ConvertTime(VAR inout: TimeRecord; newBase: TimeBase);
  2108.     {$IFC NOT GENERATINGCFM}
  2109.     INLINE $303C, $B5, $AAAA;
  2110.     {$ENDC}
  2111. PROCEDURE ConvertTimeScale(VAR inout: TimeRecord; newScale: TimeScale);
  2112.     {$IFC NOT GENERATINGCFM}
  2113.     INLINE $303C, $B7, $AAAA;
  2114.     {$ENDC}
  2115. PROCEDURE AddTime(VAR dst: TimeRecord; {CONST}VAR src: TimeRecord);
  2116.     {$IFC NOT GENERATINGCFM}
  2117.     INLINE $303C, $10C, $AAAA;
  2118.     {$ENDC}
  2119. PROCEDURE SubtractTime(VAR dst: TimeRecord; {CONST}VAR src: TimeRecord);
  2120.     {$IFC NOT GENERATINGCFM}
  2121.     INLINE $303C, $10D, $AAAA;
  2122.     {$ENDC}
  2123. FUNCTION GetTimeBaseStatus(tb: TimeBase; VAR unpinnedTime: TimeRecord): LONGINT;
  2124.     {$IFC NOT GENERATINGCFM}
  2125.     INLINE $303C, $10B, $AAAA;
  2126.     {$ENDC}
  2127. PROCEDURE SetTimeBaseZero(tb: TimeBase; VAR zero: TimeRecord);
  2128.     {$IFC NOT GENERATINGCFM}
  2129.     INLINE $303C, $128, $AAAA;
  2130.     {$ENDC}
  2131. FUNCTION GetTimeBaseEffectiveRate(tb: TimeBase): Fixed;
  2132.     {$IFC NOT GENERATINGCFM}
  2133.     INLINE $303C, $124, $AAAA;
  2134.     {$ENDC}
  2135. {***************************************
  2136. *                                        *
  2137. *          C  A  L  L  B  A  C  K             *
  2138. *                                        *
  2139. ***************************************}
  2140. FUNCTION NewCallBack(tb: TimeBase; cbType: INTEGER): QTCallBack;
  2141.     {$IFC NOT GENERATINGCFM}
  2142.     INLINE $303C, $EB, $AAAA;
  2143.     {$ENDC}
  2144. PROCEDURE DisposeCallBack(cb: QTCallBack);
  2145.     {$IFC NOT GENERATINGCFM}
  2146.     INLINE $303C, $EC, $AAAA;
  2147.     {$ENDC}
  2148. FUNCTION GetCallBackType(cb: QTCallBack): INTEGER;
  2149.     {$IFC NOT GENERATINGCFM}
  2150.     INLINE $303C, $ED, $AAAA;
  2151.     {$ENDC}
  2152. FUNCTION GetCallBackTimeBase(cb: QTCallBack): TimeBase;
  2153.     {$IFC NOT GENERATINGCFM}
  2154.     INLINE $303C, $EE, $AAAA;
  2155.     {$ENDC}
  2156. FUNCTION CallMeWhen(cb: QTCallBack; callBackProc: QTCallBackUPP; refCon: LONGINT; param1: LONGINT; param2: LONGINT; param3: LONGINT): OSErr;
  2157.     {$IFC NOT GENERATINGCFM}
  2158.     INLINE $303C, $B8, $AAAA;
  2159.     {$ENDC}
  2160. PROCEDURE CancelCallBack(cb: QTCallBack);
  2161.     {$IFC NOT GENERATINGCFM}
  2162.     INLINE $303C, $B9, $AAAA;
  2163.     {$ENDC}
  2164. {***************************************
  2165. *                                        *
  2166. *          C L O C K   C A L L B A C K      *
  2167. *                S U P P O R T              *
  2168. *                                        *
  2169. ***************************************}
  2170. FUNCTION AddCallBackToTimeBase(cb: QTCallBack): OSErr;
  2171.     {$IFC NOT GENERATINGCFM}
  2172.     INLINE $303C, $129, $AAAA;
  2173.     {$ENDC}
  2174. FUNCTION RemoveCallBackFromTimeBase(cb: QTCallBack): OSErr;
  2175.     {$IFC NOT GENERATINGCFM}
  2176.     INLINE $303C, $12A, $AAAA;
  2177.     {$ENDC}
  2178. FUNCTION GetFirstCallBack(tb: TimeBase): QTCallBack;
  2179.     {$IFC NOT GENERATINGCFM}
  2180.     INLINE $303C, $12B, $AAAA;
  2181.     {$ENDC}
  2182. FUNCTION GetNextCallBack(cb: QTCallBack): QTCallBack;
  2183.     {$IFC NOT GENERATINGCFM}
  2184.     INLINE $303C, $12C, $AAAA;
  2185.     {$ENDC}
  2186. PROCEDURE ExecuteCallBack(cb: QTCallBack);
  2187.     {$IFC NOT GENERATINGCFM}
  2188.     INLINE $303C, $12D, $AAAA;
  2189.     {$ENDC}
  2190. {***************************************
  2191. *                                        *
  2192. *          S Y N C    T A S K S              *
  2193. *                S U P P O R T              *
  2194. *                                        *
  2195. ***************************************}
  2196. FUNCTION QueueSyncTask(task: QTSyncTaskPtr): OSErr;
  2197.     {$IFC NOT GENERATINGCFM}
  2198.     INLINE $303C, $203, $AAAA;
  2199.     {$ENDC}
  2200. FUNCTION DequeueSyncTask(qElem: QTSyncTaskPtr): OSErr;
  2201.     {$IFC NOT GENERATINGCFM}
  2202.     INLINE $303C, $204, $AAAA;
  2203.     {$ENDC}
  2204. { UPP call backs }
  2205.  
  2206. CONST
  2207.     uppMovieRgnCoverProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2208.     uppMovieProgressProcInfo = $0000FAE0; { FUNCTION (4 byte param, 2 byte param, 2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2209.     uppMovieDrawingCompleteProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  2210.     uppTrackTransferProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  2211.     uppGetMovieProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2212.     uppMoviePreviewCallOutProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  2213.     uppMoviesErrorProcInfo = $00000380; { PROCEDURE (2 byte param, 4 byte param); }
  2214.     uppTextMediaProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  2215.     uppQTCallBackProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  2216.     uppQTSyncTaskProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  2217.     uppMCActionFilterProcInfo = $00000FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  2218.     uppMCActionFilterWithRefConProcInfo = $00003ED0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param): 1 byte result; }
  2219.  
  2220. FUNCTION NewMovieRgnCoverProc(userRoutine: MovieRgnCoverProcPtr): MovieRgnCoverUPP;
  2221.     {$IFC NOT GENERATINGCFM }
  2222.     INLINE $2E9F;
  2223.     {$ENDC}
  2224.  
  2225. FUNCTION NewMovieProgressProc(userRoutine: MovieProgressProcPtr): MovieProgressUPP;
  2226.     {$IFC NOT GENERATINGCFM }
  2227.     INLINE $2E9F;
  2228.     {$ENDC}
  2229.  
  2230. FUNCTION NewMovieDrawingCompleteProc(userRoutine: MovieDrawingCompleteProcPtr): MovieDrawingCompleteUPP;
  2231.     {$IFC NOT GENERATINGCFM }
  2232.     INLINE $2E9F;
  2233.     {$ENDC}
  2234.  
  2235. FUNCTION NewTrackTransferProc(userRoutine: TrackTransferProcPtr): TrackTransferUPP;
  2236.     {$IFC NOT GENERATINGCFM }
  2237.     INLINE $2E9F;
  2238.     {$ENDC}
  2239.  
  2240. FUNCTION NewGetMovieProc(userRoutine: GetMovieProcPtr): GetMovieUPP;
  2241.     {$IFC NOT GENERATINGCFM }
  2242.     INLINE $2E9F;
  2243.     {$ENDC}
  2244.  
  2245. FUNCTION NewMoviePreviewCallOutProc(userRoutine: MoviePreviewCallOutProcPtr): MoviePreviewCallOutUPP;
  2246.     {$IFC NOT GENERATINGCFM }
  2247.     INLINE $2E9F;
  2248.     {$ENDC}
  2249.  
  2250. FUNCTION NewMoviesErrorProc(userRoutine: MoviesErrorProcPtr): MoviesErrorUPP;
  2251.     {$IFC NOT GENERATINGCFM }
  2252.     INLINE $2E9F;
  2253.     {$ENDC}
  2254.  
  2255. FUNCTION NewTextMediaProc(userRoutine: TextMediaProcPtr): TextMediaUPP;
  2256.     {$IFC NOT GENERATINGCFM }
  2257.     INLINE $2E9F;
  2258.     {$ENDC}
  2259.  
  2260. FUNCTION NewQTCallBackProc(userRoutine: QTCallBackProcPtr): QTCallBackUPP;
  2261.     {$IFC NOT GENERATINGCFM }
  2262.     INLINE $2E9F;
  2263.     {$ENDC}
  2264.  
  2265. FUNCTION NewQTSyncTaskProc(userRoutine: QTSyncTaskProcPtr): QTSyncTaskUPP;
  2266.     {$IFC NOT GENERATINGCFM }
  2267.     INLINE $2E9F;
  2268.     {$ENDC}
  2269.  
  2270. FUNCTION NewMCActionFilterProc(userRoutine: MCActionFilterProcPtr): MCActionFilterUPP;
  2271.     {$IFC NOT GENERATINGCFM }
  2272.     INLINE $2E9F;
  2273.     {$ENDC}
  2274.  
  2275. FUNCTION NewMCActionFilterWithRefConProc(userRoutine: MCActionFilterWithRefConProcPtr): MCActionFilterWithRefConUPP;
  2276.     {$IFC NOT GENERATINGCFM }
  2277.     INLINE $2E9F;
  2278.     {$ENDC}
  2279.  
  2280. FUNCTION CallMovieRgnCoverProc(theMovie: Movie; changedRgn: RgnHandle; refcon: LONGINT; userRoutine: MovieRgnCoverUPP): OSErr;
  2281.     {$IFC NOT GENERATINGCFM}
  2282.     INLINE $205F, $4E90;
  2283.     {$ENDC}
  2284.  
  2285. FUNCTION CallMovieProgressProc(theMovie: Movie; message: INTEGER; whatOperation: INTEGER; percentDone: Fixed; refcon: LONGINT; userRoutine: MovieProgressUPP): OSErr;
  2286.     {$IFC NOT GENERATINGCFM}
  2287.     INLINE $205F, $4E90;
  2288.     {$ENDC}
  2289.  
  2290. FUNCTION CallMovieDrawingCompleteProc(theMovie: Movie; refCon: LONGINT; userRoutine: MovieDrawingCompleteUPP): OSErr;
  2291.     {$IFC NOT GENERATINGCFM}
  2292.     INLINE $205F, $4E90;
  2293.     {$ENDC}
  2294.  
  2295. FUNCTION CallTrackTransferProc(t: Track; refCon: LONGINT; userRoutine: TrackTransferUPP): OSErr;
  2296.     {$IFC NOT GENERATINGCFM}
  2297.     INLINE $205F, $4E90;
  2298.     {$ENDC}
  2299.  
  2300. FUNCTION CallGetMovieProc(offset: LONGINT; size: LONGINT; dataPtr: UNIV Ptr; refCon: UNIV Ptr; userRoutine: GetMovieUPP): OSErr;
  2301.     {$IFC NOT GENERATINGCFM}
  2302.     INLINE $205F, $4E90;
  2303.     {$ENDC}
  2304.  
  2305. FUNCTION CallMoviePreviewCallOutProc(refcon: LONGINT; userRoutine: MoviePreviewCallOutUPP): BOOLEAN;
  2306.     {$IFC NOT GENERATINGCFM}
  2307.     INLINE $205F, $4E90;
  2308.     {$ENDC}
  2309.  
  2310. PROCEDURE CallMoviesErrorProc(theErr: OSErr; refcon: LONGINT; userRoutine: MoviesErrorUPP);
  2311.     {$IFC NOT GENERATINGCFM}
  2312.     INLINE $205F, $4E90;
  2313.     {$ENDC}
  2314.  
  2315. FUNCTION CallTextMediaProc(theText: Handle; theMovie: Movie; VAR displayFlag: INTEGER; refcon: LONGINT; userRoutine: TextMediaUPP): OSErr;
  2316.     {$IFC NOT GENERATINGCFM}
  2317.     INLINE $205F, $4E90;
  2318.     {$ENDC}
  2319.  
  2320. PROCEDURE CallQTCallBackProc(cb: QTCallBack; refCon: LONGINT; userRoutine: QTCallBackUPP);
  2321.     {$IFC NOT GENERATINGCFM}
  2322.     INLINE $205F, $4E90;
  2323.     {$ENDC}
  2324.  
  2325. PROCEDURE CallQTSyncTaskProc(task: UNIV Ptr; userRoutine: QTSyncTaskUPP);
  2326.     {$IFC NOT GENERATINGCFM}
  2327.     INLINE $205F, $4E90;
  2328.     {$ENDC}
  2329.  
  2330. FUNCTION CallMCActionFilterProc(mc: MovieController; VAR action: INTEGER; params: UNIV Ptr; userRoutine: MCActionFilterUPP): BOOLEAN;
  2331.     {$IFC NOT GENERATINGCFM}
  2332.     INLINE $205F, $4E90;
  2333.     {$ENDC}
  2334.  
  2335. FUNCTION CallMCActionFilterWithRefConProc(mc: MovieController; action: INTEGER; params: UNIV Ptr; refCon: LONGINT; userRoutine: MCActionFilterWithRefConUPP): BOOLEAN;
  2336.     {$IFC NOT GENERATINGCFM}
  2337.     INLINE $205F, $4E90;
  2338.     {$ENDC}
  2339.  
  2340. {$ALIGN RESET}
  2341. {$POP}
  2342.  
  2343. {$SETC UsingIncludes := MoviesIncludes}
  2344.  
  2345. {$ENDC} {__MOVIES__}
  2346.  
  2347. {$IFC NOT UsingIncludes}
  2348.  END.
  2349. {$ENDC}
  2350.